PDF-parser.py
Этот инструмент разбирает PDF документе на основные элементы. Это не скажется на PDF документе. Код парсера быстрый и грязный, я не рекомендую код данного парсера для разработки PDF анализаторов, но он работает.
Синтаксический анализатора изображен ниже:

Опция --stats выводит статистику значений объектов обнаруженных в PDF документе. Используйте ее, чтобы определить PDF документы с необычными/неожиданными объектами или чтобы классифицировать PDF документ. Например, я создал 2 Статистика вредоносных PDF-файлов, и хотя они были очень разные по содержанию и размеру, статистика была идентична, доказывая, что они использовали один вектор атаки и одного и тогоже же происхождения.
Опция --search=SEARCH ищет строку в косвенных объектов (не в потоке косвенных объектов). Поиск не чувствителен к регистру, и методам обфускации (так, как я еще не сталкиваться с этими методами обфускации в дикой природе).
Функция --filter применяет фильтр(ы) в поток. На данный момент, поддерживается только FlateDecode (например Zlib декомпрессия).
Опция --raw выводит исходные данные документа (например, не для печати представления Python).
--object выводит данные косвенного объекта, которого был указан ID. Этот ID не зависит от версии. Если несколько объектов имеют одинаковый идентификатор (без учета версии), все эти объекты будут выводиться.
--reference позволяет выбрать все объекты, ссылающийся на указанный косвенный объект. Этот ID не зависит от версии.
Тип Alows выбирает все объекты данного типа. Тип это имя, и является чувствительный к регистру и должно начинаться с символа слеш (/).
SHA256: 633B7400015B2C936103CC64C37435FB333B0F2634B2A6CD3A8949EAB1D18E9B
make-pdf tools
Если выполнить это без параметров, он будет генерировать PDF документа с JavaScript для отображения окна сообщения (вызов app.alert).
Предоставить собственный JavaScript, используйте опцию –javascript для скрипта в командной строке или –javascriptfile для сценария, находящегося в файле.
make-pdf-embedded.py создает PDF файл со встроенным файлом.
Download:
make-pdf_V0_1_4.zip (https)
MD5: D2630ABDE44DFFDD5640AEF391CE591D
SHA256: 11578A938F9FFCC16456519375AF8817C1F8F0D9C41C68BBF78882BFB36B8058
pdfid.py
Этот инструмент не является PDF парсером , но он будет искать определенные ключевые слова в PDF, что позволяет определить PDF документы, которые содержат (например) JavaScript или выполняет действие при открытии. PDFiD будут обрабатывать и обфускации.
Идея состоит в том, чтобы использовать этот инструмент первым, сортируя PDF документы, а затем анализировать подозрительные PDF.
Важным критерием дизайн для этой программы является простота. Для полного разбора PDF документа требуется очень сложная программа, и, следовательно, она обязана содержать много (уязвимостей) ошибок. Чтобы избежать вероятность, атака, я решил оставить эту программу очень простой (это даже проще, чем PDF-parser.py).
PDFiD будет сканировать документ PDF для данного списка строк и подсчета вхождений (общая и всем) каждого слова:
- obj
- endobj
- stream
- endstream
- xref
- trailer
- startxref
- /Page
- /Encrypt
- /ObjStm
- /JS
- /JavaScript
- /AA
- /OpenAction
- /JBIG2Decode
- /RichMedia
- /Launch
- /XFA
/Page дает указание количества страниц в PDF документе. Большинство вредоносных PDF документе, имеют только одну страницу.
Download:
pdfid_v0_1_2.zip (https)
MD5: 60FC17757201F014A6ADA0744B74A740
SHA256: 1CF36C50427A2206275C322A8C098CD96A844CAF6077B105ADE9B1974789856
MD5: 60FC17757201F014A6ADA0744B74A740
SHA256: 1CF36C50427A2206275C322A8C098CD96A844CAF6077B105ADE9B1974789856
PDFTemplate.bt
Он особенно полезен для неправильных PDF файлов, как в этом примере с PDFUnknown структуры:

Download:
PDFTemplate.zip (https)
MD5: C124200C3317ACA9C17C2AE2579FCFEB
SHA256: 24C4FEAD2CABAD82EC336DDCFD404915E164D7B48FBA7BA1295E12BBAF8EB15D
Download:
PDFTemplate.zip (https)
MD5: C124200C3317ACA9C17C2AE2579FCFEB
SHA256: 24C4FEAD2CABAD82EC336DDCFD404915E164D7B48FBA7BA1295E12BBAF8EB15D