Таблица экспорта содержит все записи функций Win32 Exe? - PullRequest
0 голосов
/ 17 марта 2010

Мне нужно знать все функции Win32.exe или методы класса, содержащиеся в его экспортированной таблице (PE-файл). Где я могу получить эту информацию? Я понимаю каждый раздел формата файла PE, но, пожалуйста, скажите мне, как действовать.

С уважением,

Мухаммед Усман

Ответы [ 2 ]

0 голосов
/ 17 марта 2010

Таблица экспорта содержит только записи для экспортируемых функций. Если вы отлаживаете доступную информацию, обычно для большинства других функций также будут записи. Без этого вполне вероятно, что исполняемый файл просто не содержит никакой информации о функциях, которые не были экспортированы.

0 голосов
/ 17 марта 2010

Используйте dumpbin, поставляемый с Visual Studio C ++ Express или загрузите пакет OpenWatcom C / C ++ , и там есть wdump, связанный с ним ...

Open Watcom Executable Image Dump Utility Version 1.8
Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.

Usage: wdump [-?abdefipqrsx] [-A] [-B] [-D] [-S] 
   is a DOS EXE file, a Windows or OS/2 executable or DLL,
            a PharLap executable, NLM, a QNX executable,
            an ELF executable, shared library or object file,
            or a COFF object.

Редактировать: Вы не можете извлечь эти функции экспорта напрямую с помощью программных средств, утилита выше покажет адреса с помощью переключателей командной строки, включая отображение адреса функций экспорта для 'LoadLibrary', 'FreeLibrary ». При внутреннем вызове GetProcAddress выполняется поиск в каталоге экспорта, чтобы найти соответствующий адрес экспортируемой функции перед возвратом указателя функции для этой экспортируемой функции.

Редактирование # 2: @UsMan: Вы можете сбросить адреса функций экспорта, но найти сигнатуры не так просто, так как вам нужно будет разобрать соответствующие EXE-файлы и определить параметры из просмотра. в стеке вызовов. Кроме этого, если у вас есть сторонняя DLL, но она не поставляется с заголовочным файлом и файлом lib, чтобы показать вам сигнатуры функций ... вам не повезло, кроме дизассемблирования кода ... Если вы Говоря о выпуске EXE или DLL, это будет сложнее, так как отладочная информация будет удалена, загружая ее в отладчик для обработки стека, используемых вызовов и параметров, которые могут быть спорными.

Не могли бы вы отредактировать свой вопрос, чтобы было более понятно, какова ваша цель, поскольку я стреляю себе в ногу и рискую быть опровергнутым из-за вашего неудовлетворения этим ответом… MFC, ATL, DLL, что такое EXE, DLL и т.д ...

...