Операционная система Microsoft Windows 3.1 для программиста -том 3


Анализ DLL-библиотек при помощи утилиты tdump.exe


В комплекте системы разработки Borland Turbo C++ for Windows входит утилита tdump.exe , предназначенная для работы в среде MS-DOS. С помощью этой утилиты вы сможете проанализировать содержимое любой DLL-библиотеки, определив имена экспортируемых функций, их порядковые номера, имена DLL-библиотек и номера функций, импортируемых из этих библиотек и т. д.

В системном каталоге Windows имеется DLL-библиотека toolhelp.dll, предназначенная для создания отладочных средств и работы с внутренними структурами данных Windows. Мы выбрали эту библиотеку для наших исследований в основном из-за ее небольшого размера. Описание самой библиотеки выходит за рамки данного тома "Библиотеки системного программиста".

Итак, скопируйте библиотеку в любой временный каталог и введите в среде MS-DOS (или в среде виртуальной машины MS-DOS) следующую команду:

tdump toolhelp.dll toolhelp.map

В результате в файл toolhelp.map будет записано подробное описание библиотеки toolhelp.dll. Мы приведем полученный листинг с нашими комментариями.

Turbo Dump Version 3.1 Copyright (c) 1988, 1992 Borland International Display of File TOOLHELP.DLL

В начале файла DLL-библиотеки находится заголовок в формате MS-DOS. Он нас не интересует.

Old Executable Header

DOS File Size 3730h ( 14128. ) Load Image Size 359h ( 857. ) Relocation Table entry count 0000h ( 0. ) Relocation Table address 0040h ( 64. ) Size of header record (in paragraphs) 0004h ( 4. ) Minimum Memory Requirement (in paragraphs) 0000h ( 0. ) Maximum Memory Requirement (in paragraphs) FFFFh ( 65535. ) File load checksum 0000h ( 0. ) Overlay Number 0000h ( 0. )

Initial Stack Segment (SS:SP) 0000:00B8 Program Entry Point (CS:IP) 0000:0000

Далее в листинге приводится информация о заголовке загрузочного файла в формате Windows. Это так называемый заголовок нового исполняемого формата.

New Executable header Operating system Windows File Load CRC 0AABAA86Bh Program Entry Point (CS:IP) 0001:016A Initial Stack Pointer (SS:SP) 0000:0000 Auto Data Segment Index 0002h ( 2. ) Initial Local Heap Size 0200h ( 512. ) Initial Stack Size 0000h ( 0. ) Segment count 0002h ( 2. ) Module reference count 0002h ( 2. ) Moveable Entry Point Count 0000h ( 0. ) File alignment unit size 0010h ( 16. ) DOS File Size 3730h ( 14128. ) Linker Version 5.20




Начало  Назад  Вперед



Книжный магазин