Pull to refresh

Консольное приложение readpe

Reading time 2 min
Views 5.7K
В посте речь пойдет о консольной утилите ReadPE собственной разработки, которая парсит исполняемые файлы формата Portable Executable.

Отвечая на возможный вопрос: «Почему потребовался свой велосипед, если уже есть dumpbin?» скажу, что меня перестали удовлетворять многие известные утилиты подобного класса из-за их неспособности работать с хитровыдуманными и вручную созданными файлами. Взятые файлы входящие в известный набор Corkami и поданные на вход dumpbin, идущая в поставке с Visual Studio или pedump Мэтта Питрека в большинстве случаев откажутся работать с подобным файлом. Это связано с тем, что очень часто при написании подобных утилит опираются исключительно на официальное описание этого формата предоставляемого Microsoft. Несмотря на то, что сам формат достаточно простой, он тем не менее обладает весьма большим количеством подводных камней и лучшим руководством по этому формату является листинг кода из системного загрузчика в IDA Pro.


Какие возможности может предложить моя утилита?

  1. Работа с 32- и 64-битными образами;
  2. Работа со специфическими файлами, которые как правило называют «извратными»;
  3. Результат формируется в формате JSON, что упрощает написание скриптов;
  4. Отображает TLS-callback функции;
  5. Отображает хук-функции использующие механизм привязки(old и new binding);
  6. Выдача вспомогательной информации об энтропии, forward-функции, rva, файловые смещения и др.

Тулза разрабатывалась с целью решить мои собственные задачи. Однако в данный момент уже используется не только мною, в связи с чем решил поделиться. Возможно, поможет решить задачи еще большему количеству системных программистов. При разработке утилита тестировалось на corkami-наборе, а также тех файлах, что использовались при тестировании PE Tools.

Тулзу можно взять у меня в репозитории research-toolchain на bitbucket. Подробности об использовании можно почитать ru_ReadME.

Я всегда открыт для общения и буду рад рассмотреть ваши вопросы, возникшие при использовании моей утилиты. Особо буду благодарен за сообщения о багах.
Tags:
Hubs:
+29
Comments 11
Comments Comments 11

Articles