Те, кто использует для развлечения ;) работы
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.
ΞρεΤΙκ