Таблица экспорта содержит все записи функций Win32 Exe?
Мне нужно знать все функции Win32.exe или методы класса, содержащиеся в его экспортированной таблице (PE-файл). Где я могу получить эту информацию? Я понимаю каждый раздел формата файла PE, но, пожалуйста, скажите мне, как действовать.
С Уважением,
Мухаммед Усман
2 ответа
Таблица экспорта содержит только записи для экспортируемых функций. Если вы отлаживаете доступную информацию, обычно для большинства других функций также будут записи. Без этого вполне вероятно, что исполняемый файл просто не содержит никакой информации о функциях, которые не были экспортированы.
Использование dumpbin
который поставляется с Visual Studio C++ Express или загрузить пакет OpenWatcom C/C++, и там есть wdump
связано с этим...
Утилита для создания исполняемых образов Open Watcom версии 1.8 Отдельные части Copyright (c) 1984-2002 Sybase, Inc. Все права защищены. Исходный код доступен по открытой лицензии Sybase Open Watcom. Смотрите http://www.openwatcom.org/ для деталей. Использование: wdump [-? Abdefipqrsx] [-A] [-B] [-D] [-S] - это файл DOS EXE, исполняемый файл Windows или OS/2 или DLL, исполняемый файл PharLap, NLM, исполняемый файл QNX, исполняемый файл ELF, общая библиотека или объектный файл или объект COFF.
Редактировать: Вы не можете извлекать эти функции экспорта напрямую с помощью программных средств, утилита выше покажет адреса с помощью переключателей командной строки, включая отображение адреса функций экспорта для "LoadLibrary", "FreeLibrary". Когда используется вызов GetProcAddress, для внутренних целей он ищет каталог экспорта, чтобы найти соответствующий адрес экспортируемой функции, прежде чем вернуть обратно указатель функции для этой экспортируемой функции.
Редактирование # 2: @UsMan: Вы можете сбросить адреса функций экспорта, но найти сигнатуры непросто, так как вам потребуется разобрать соответствующие EXE-файлы и определить параметры из просмотра стека вызовов. Кроме этого, если у вас есть сторонняя DLL, но у вас нет файла заголовка и файла lib, чтобы показать вам сигнатуры функций... вам в значительной степени не повезло, кроме как разбирать код... Если вы Говоря о выпуске EXE или DLL, это будет сложнее, так как отладочная информация будет удалена, загружая ее в отладчик для обработки стека, используемых вызовов и параметров, которые могут быть спорными.
Можете ли вы отредактировать свой вопрос, чтобы сделать его более ясным в отношении вашей цели, так как я стреляю себе в ногу и рискую быть опровергнутым из-за вашего неудовлетворения этим ответом... это МФЦ, ATL, DLL, что такое EXE, DLL и т.д...