
pefile — это модуль Python для чтения и работы с PE (Portable Executable) файлами.
pefile — это кроссплатформенный модуль Python для разбора и работы с портативными исполняемыми (PE) файлами. Большая часть информации, содержащейся в заголовках PE-файлов, доступна, как и все детали и данные разделов.
Структуры, определённые в заголовочных файлах Windows, будут доступны как атрибуты экземпляра PE. Именование полей/атрибутов будет стараться придерживаться схемы именования в этих заголовках. Только сокращения, добавленные для удобства, будут отступать от этого соглашения.
pefile требует базового понимания структуры PE-файла — с его помощью можно исследовать практически все возможности формата PE-файлов.
Для установки pefile через pip:
pip3 install pefile
Некоторые задачи, которые делает возможными pefile:
Пожалуйста, обратитесь к Примерам использования для некоторых фрагментов кода, демонстрирующих, как использовать pefile.
Вот несколько примеров того, как выглядит дамп, созданный с помощью pefile, для разных типов файлов:
Для работы с аутентифицированными двоичными файлами, включая подписи Authenticode, пожалуйста, ознакомьтесь с проектом verify-sigs.
pefile работает в нескольких конвейерах, сканируя сотни тысяч новых PE-файлов каждый день, и, хотя он не идеален, со временем он стал довольно надёжным. Тем не менее, мелкие сбои обнаруживаются время от времени. Если вы наткнётесь на PE-файл, который обрабатывается некорректно, пожалуйста, сообщите об этом! Это поможет сделать pefile ещё чуточку мощнее.
pefile является самодостаточным. Модуль не имеет зависимостей; он не зависит от порядка байтов; и работает на Windows, macOS и Linux.
PDF-файлы плакатов, изображающих формат PE-файлов:
Следующие ссылки предоставляют подробную информацию о формате PE и его структурах.