Ассемблер для Windows

       

DUMPBIN EXE



DUMPBIN.EXE

Программа используется для исследования загружаемых и объектных модулей COFF-формата и выводит информацию в текущую консоль. Ключи данной программы:

/ALL - выводит всю доступную информацию о модуле, кроме ассемблерного кода.

/ARCH - выводит содержимое секции .arch заголовка модуля.

/ARCHIVEMEMBERS - выводит минимальную информацию о элементах объектной библиотеки.

/DEPENDENTS - выводит имена динамических библиотек, откуда данным модулем импортируются функции.

/DIRECTIVES - выводит содержимое секции .drective, создаваемой компилятором (только для объектных модулей).

/DISASM - дизассемблирует содержимое секций модуля с использованием и символьной информации, если она присутствует там.

/EXPORTS - выдает все экспортируемые модулем имена.

/HEADER - выдает заголовки модуля и всех его секций. В случае объектной библиотеки выдает заголовки всех составляющих ее объектных модулей.

/IMPORTS - выдает все имена, импортируемые данным модулем.

/LINENUMBERS - выдает номера строк объектного модуля, если таковые имеются.

/LINKERMEMBER[:{1|2}] - выдает все имена в объектной библиотеке, определяемые как public.



/LINKERMEMBER:1 - в порядке следования объектных модулей в библиотеке.

/LINKERMEMBER:2 - вначале выдает смещение и индекс объектных модулей, а затем список имен в алфавитном порядке для каждого модуля.

/LINKERMEMBER - сочетание ключей 1 и 2.

/OUT - определяет, что вывод осуществляется не в консоль, а в файл (/OUT:ED.TXT).

/PDATA - выдает содержимое таблиц исключения.

/RAWDATA - выдает дамп каждой секции файла. Разновидности данного ключа: /RAWDATA:BYTE, /RAWDATA:SHORTS, /RAWDATA:LONGS, /RAWDATA:NONE, /RAWDATA:,number. Здесь number определяет ширину строк.

/SUMMARY - выдает минимальную информацию о секциях.

/SYMBOLS - выдает таблицу символов COFF-файла.

Рассматриваемая программа является весьма мощным средством дизассемблирования. Пусть программа называется prog.asm. Выполним трансляцию программы следующим образом.

ml /с /coff /Zi /Zd prog.asm link /debug /subsystem:windows prog.obj53




При этом, кроме исполняемого модуля prog.exe, появляется еще и файл prog.pdb, содержащий отладочную информацию.

Выполним теперь команду DUMPBIN /DISASM /OUT:PROG.TXT PROG.EXE. В результате получим практически исходный ассемблерный код. Часть этого кода представлена на Рисунок 4.2.1.

_START: 0040101С: 6A00 push 0 0040101E: E843020000 call _GetModuleHandleA@4 00401023: A344404000 mov [00404044],eax 00401028: C7051C404000 mov dword ptr ds:[40401Ch],4003h 03400000 00401032: C70520404000 mov dword ptr ds:[404020h],offset @ILT+0(_WNDPROC@0) 05104000 0040103C: C70524404000 mov dword ptr ds:[404024h],0 00000000 00401046: C70528404000 mov dword ptr ds:[404028h],0 00000000 00401050: A144404000 mov eax,[00404044] 00401055: A32C404000 mov [0040402C],eax 0040105A: 68007F0000 push 7F00h 0040105F: 6A00 push 0 00401061: E8D6010000 call _LoadIconA@8 00401066: A330404000 mov [00404030],eax 0040106B: 68037F0000 push 7F03h 00401070: 6A00 push 0 00401072: E8BF010000 call _LoadCursorA@8


Содержание раздела