Neben den in den anderen Antworten erwähnten GUI-basierten Tools gibt es einige Befehlszeilen-Tools, mit denen der ursprüngliche PDF-Quellcode in eine andere Darstellung umgewandelt werden kann, mit der Sie die (jetzt geänderte Datei) mit einem Texteditor überprüfen können. Alle folgenden Tools funktionieren unter Linux, Mac OS X, anderen Unix-Systemen oder Windows.
qpdf
(mein Favorit)
Verwenden Sie qpdf, um die Streams (der meisten) ObjStm
Objekte zu dekomprimieren und Objekte in einzelne indirekte Objekte zu zerlegen :
qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf
qpdf
beschreibt sich selbst als ein Tool, das "strukturelle, inhaltserhaltende Transformationen für PDF-Dateien" durchführt .
Öffnen und überprüfen Sie dann einfach die uncompressed-qpdf.pdf
Datei in Ihrem bevorzugten Texteditor. Die meisten der zuvor komprimierten (und damit binären) Bytes sind jetzt Klartext.
mutool
Es gibt auch das mutool
Befehlszeilentool, das im Lieferumfang des MuPDF PDF-Viewers enthalten ist (ein Schwesterprodukt von Ghostscript, das von derselben Firma, Artifex, hergestellt wird ). Der folgende Befehl dekomprimiert auch Streams und erleichtert die Überprüfung über einen Texteditor:
mutool clean -d orig.pdf uncompressed-mutool.pdf
podofouncompress
PoDoFo ist eine FreeSoftware / OpenSource-Bibliothek für die Arbeit mit dem PDF-Format und enthält einige Befehlszeilentools, darunterpodofouncompress
. Verwenden Sie es so, um PDF-Streams zu dekomprimieren:
podofouncompress orig.pdf uncompressed-podofo.pdf
peepdf.py
PeePDF ist ein Python-basiertes Tool, mit dem Sie PDF-Dateien durchsuchen können. Sein ursprünglicher Zweck war die Erforschung und Analyse von PDF-basierter Malware, aber ich finde es nützlich, auch die Struktur vollständig harmloser PDF-Dateien zu untersuchen.
Es kann interaktiv verwendet werden, um die in einer PDF-Datei enthaltenen Objekte und Streams zu "durchsuchen".
Ich werde hier kein Anwendungsbeispiel geben, sondern nur einen Link zu seiner Dokumentation:
pdfid.py
und pdf-parser.py
pdfid.py
und pdf-parser.py
sind zwei PDF-Tools von Didier Stevens, die in Python geschrieben wurden.
Ihr Hintergrund besteht auch darin, schädliche PDF-Dateien zu untersuchen. Ich finde es jedoch auch nützlich, die Struktur und den Inhalt harmloser PDF-Dateien zu analysieren.
Hier ist ein Beispiel, wie ich den unkomprimierten Stream des PDF-Objekts Nr. 1 extrahieren würde. 5 in eine * .dump-Datei:
pdf-parser.py -o 5 -f -d obj5.dump my.pdf
Schlussbemerkungen
Bitte beachten Sie, dass einige Binärteile in einer PDF-Datei nicht unbedingt unkomprimierbar (oder in lesbaren ASCII-Code dekodierbar) sind, da sie in PDFs in ihrem nativen Format eingebettet und verwendet werden. Solche PDF-Teile sind JPEG-Bilder, Schriftarten oder ICC-Farbprofile.
Wenn Sie die obigen Tools mit den angegebenen Befehlszeilenbeispielen vergleichen, werden Sie feststellen, dass sie NICHT alle identische Ausgaben erzeugen. Der Aufwand, sie auf ihre Unterschiede zu vergleichen, kann Ihnen helfen, die Art der PDF-Syntax und des Dateiformats besser zu verstehen.