Outre les outils basés sur l'interface graphique mentionnés dans les autres réponses, il existe quelques outils de ligne de commande qui peuvent transformer le code source PDF d'origine en une représentation différente qui vous permet d'inspecter le (fichier maintenant modifié) avec un éditeur de texte. Tous les outils ci-dessous fonctionnent sur Linux, Mac OS X, d'autres systèmes Unix ou Windows.
qpdf
(mon préféré)
Utilisez qpdf pour décompresser (la plupart) les flux d' ObjStm
objets et disséquer également les objets en objets indirects individuels:
qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf
qpdf
se décrit comme un outil qui effectue des "transformations structurelles, préservant le contenu des fichiers PDF" .
Ensuite, ouvrez simplement + inspectez le uncompressed-qpdf.pdf
fichier dans votre éditeur de texte préféré. La plupart des octets précédemment compressés (et donc binaires) seront désormais du texte brut.
mutool
Il existe également l' mutool
outil de ligne de commande fourni avec la visionneuse PDF MuPDF (qui est un produit frère de Ghostscript, fabriqué par la même société, Artifex ). La commande suivante décompresse également les flux et les rend plus faciles à inspecter via un éditeur de texte:
mutool clean -d orig.pdf uncompressed-mutool.pdf
podofouncompress
PoDoFo est une bibliothèque FreeSoftware / OpenSource pour travailler avec le format PDF et elle comprend quelques outils de ligne de commande, y comprispodofouncompress
. Utilisez-le comme ceci pour décompresser les flux PDF:
podofouncompress orig.pdf uncompressed-podofo.pdf
peepdf.py
PeePDF est un outil basé sur Python qui vous aide à explorer les fichiers PDF. Son objectif initial était la recherche et la dissection de logiciels malveillants basés sur PDF, mais je trouve également utile d'étudier la structure de fichiers PDF complètement inoffensifs.
Il peut être utilisé de manière interactive pour «parcourir» les objets et les flux contenus dans un PDF.
Je ne donnerai pas d'exemple d'utilisation ici, mais seulement un lien vers sa documentation:
pdfid.py
et pdf-parser.py
pdfid.py
et pdf-parser.py
sont deux outils PDF de Didier Stevens écrits en Python.
Leur expérience est également d'aider à explorer les fichiers PDF malveillants - mais je trouve également utile d'analyser la structure et le contenu des fichiers PDF bénins.
Voici un exemple comment extraire le flux non compressé de l'objet PDF no. 5 dans un fichier * .dump:
pdf-parser.py -o 5 -f -d obj5.dump my.pdf
Notes finales
Veuillez noter que certaines parties binaires d'un PDF ne sont pas nécessairement incompressibles (ou décodables en code ASCII lisible par l'homme), car elles sont incorporées et utilisées dans leur format natif dans les PDF. Ces parties PDF sont des images JPEG, des polices ou des profils de couleurs ICC.
Si vous comparez les outils ci-dessus et les exemples de ligne de commande donnés, vous découvrirez qu'ils ne produisent PAS tous des sorties identiques. L'effort de les comparer pour leurs différences en soi peut vous aider à mieux comprendre la nature de la syntaxe et du format de fichier PDF.