Помимо инструментов на основе графического интерфейса, упомянутых в других ответах, существует несколько инструментов командной строки, которые могут преобразовать исходный исходный код PDF в другое представление, которое позволяет вам проверять (теперь измененный файл) с помощью текстового редактора. Все перечисленные ниже инструменты работают в Linux, Mac OS X, других системах Unix или Windows.
qpdf
(мой любимый)
Используйте qpdf для распаковки (большинства) потоков объектов, а также для разделения ObjStm
объектов на отдельные косвенные объекты:
qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf
qpdf
описывает себя как инструмент, который выполняет «структурные преобразования с сохранением содержимого в файлах PDF» .
Затем просто откройте + проверьте uncompressed-qpdf.pdf
файл в своем любимом текстовом редакторе. Большая часть ранее сжатых (и, следовательно, двоичных) байтов теперь будет обычным текстом.
mutool
Существует также mutool
инструмент командной строки, который поставляется в комплекте со средством просмотра PDF-файлов MuPDF (который является дочерним продуктом Ghostscript, созданным той же компанией Artifex ). Следующая команда также распаковывает потоки и упрощает их просмотр в текстовом редакторе:
mutool clean -d orig.pdf uncompressed-mutool.pdf
podofouncompress
PoDoFo - это библиотека FreeSoftware / OpenSource для работы с форматом PDF, которая включает в себя несколько инструментов командной строки, в том числеpodofouncompress
. Используйте это так, чтобы распаковать потоки PDF:
podofouncompress orig.pdf uncompressed-podofo.pdf
peepdf.py
PeePDF - это инструмент на основе Python, который помогает вам исследовать файлы PDF. Его первоначальная цель заключалась в исследовании и анализе вредоносных программ на основе PDF, но я считаю полезным также исследовать структуру полностью безопасных файлов PDF.
Его можно использовать в интерактивном режиме для «просмотра» объектов и потоков, содержащихся в PDF.
Я не буду приводить здесь пример использования, а только ссылку на его документацию:
pdfid.py
а также pdf-parser.py
pdfid.py
и pdf-parser.py
два инструмента PDF от Дидье Стивенса, написанные на Python.
Их опыт также помогает исследовать вредоносные PDF-файлы, но я также считаю полезным анализировать структуру и содержимое безопасных PDF-файлов.
Вот пример того, как я извлекаю несжатый поток объекта PDF № 5 в файл * .dump:
pdf-parser.py -o 5 -f -d obj5.dump my.pdf
Заключительные примечания
Обратите внимание, что некоторые двоичные части внутри PDF-файла не обязательно являются несжимаемыми (или декодируемыми в читаемый человеком код ASCII), потому что они встроены и используются в своем собственном формате внутри PDF-файлов. Такие части PDF представляют собой изображения JPEG, шрифты или цветовые профили ICC.
Если вы сравните вышеуказанные инструменты и приведенные примеры командной строки, вы обнаружите, что НЕ все они производят одинаковые результаты. Попытка сравнить их на предмет их различий сама по себе может помочь вам лучше понять природу синтаксиса PDF и формата файла.