Может ли кто-нибудь подсказать, как с помощью python я могу получить таблицу адресов импорта и таблицу адресов экспорта из PE? В настоящее время я использую модуль pefile, но не уверен, что смогу получить с его помощью IAT и EAT. Большое спасибо за помощь.
1 ответ
В документации описано, как это сделать:
Список импортированных символов
Каждый каталог, если он существует в обрабатываемом PE-файле, имеет запись как DIRECTORY_ENTRY_directoryname в экземпляре PE. Импортированные символы могут быть перечислены следующим образом:
# If the PE file was loaded using the fast_load=True argument, we will need to parse the data directories:
pe.parse_data_directories()
for entry in pe.DIRECTORY_ENTRY_IMPORT:
print entry.dll
for imp in entry.imports:
print '\t', hex(imp.address), imp.name
Вывод
comdlg32.dll 0x10012A0L PageSetupDlgW 0x10012A4L FindTextW 0x10012A8L PrintDlgExW [snip] SHELL32.dll 0x1001154L DragFinish 0x1001158L DragQueryFileW
Список экспортированных символов
Точно так же экспортируемые символы могут быть перечислены следующим образом:
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
print hex(pe.OPTIONAL_HEADER.ImageBase + exp.address), exp.name, exp.ordinal
Вывод
0x7ca0ab4f SHUpdateRecycleBinIcon 336 0x7cab44c0 SHValidateUNC 173 0x7ca7b0aa SheChangeDirA 337 0x7ca7b665 SheChangeDirExA 338 0x7ca7b3e1 SheChangeDirExW 339 0x7ca7aec6 SheChangeDirW 340 0x7ca8baae SheConvertPathW 341
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.