EreTIk's Box » Cтатьи, исходники » Скрипт обновления файла ординалов для HIEW


Те, кто использует для развлечения ;) работы HIEW, знают, что в его директории есть текстовый файл hiew7.ord, который содержит соответствие ординалов импортов символическим именам. А видеть вызовы по именам намного приятнее, чем видеть вызовы численных ординалов. Но постоянно пополнять этот файл руками не очень приятно, поэтому я решил поделится своим py-скриптом, который обновляет этот файл: hiew7_ord.py


Для запуска, кроме самого python'а, понадобится:

  • pefile. Используется для разбора формата PE-файла.
  • pykd версии 0.2.0.18 или старше. Используется для получения символических имен экспортов, когда имя не указано в экспорте (например, mfc90u.dll v9.0.30729.1).

Скрипт принимает следующие параметры командной строки:

  • Целевой путь, обязательный параметр. В этом параметре необходимо указать путь к PE-файлу или директории, содержащей PE-файлы. Если указана директория, то в ней будет произведен поиск всех PE-файлов, вложенные поддиректории не обрабатываются.
  • Путь к входному файлу hiew7.ord, не обязательный параметр. По умолчанию используется файл hiew7.ord.
  • Путь к выходному файлу hiew7.ord, не обязательный параметр. По умолчанию используется файл hiew7.ord. Может совпадать с путем к входному файлу hiew7.ord.

Во время своей работы, после обработки очередного PE-файла, скрипт ищет нужную секцию в hiew7.ord. Если секции нет, то добавляется новая (предпоследней). Если секция существует, то она обновляется данными из обработанного PE-файла.


P.S. По умолчанию, автоматическая подгрузка файла hiew7.ord выключена в файле hiew8.ini. Это легко исправляется установкой в файле hiew8.ini параметра AutoloadOrdinals в значение On.




Скачать скрипт hiew7_ord.py


ΞρεΤΙκ