Дизассемблеры
Дизассемблеры.
Дизассемблеры переводят исполняемый модуль в ассемблерный код. Примером простейшего дизассемблера является программа DUMPPE.EXE, работающая в строковом режиме. Пример работы программы DUMPPE.EXE представлен на Рисунок 1.1.11. Здесь дизассемблируется программа, приведенная на Рисунок 1.1.5. Ну как, узнали нашу программу? Смысл обозначений будет ясен из дальнейшего изложения.
knia.exe (hex) (dec) .EXE size (bytes) 490 1168 Minimum load size (bytes) 450 1104 Overlay number 0 0 Initial CS:IP 0000:0000 Initial SS:SP 0000:OOB8 184 Minimum allocation (para) 0 0 Maximum allocation (para) FFFF 65535 Header size (para) 4 4 Relocation table offset 40 64 Relocation entries 0 0
Portable Executable starts at a8 Signature 00004550 (РЕ) Machine 014C (Intel 386) Sections 0001 Time Date Stamp 3AE6D1B1 Wed Apr 25 19:31:29 2001
Symbol Table 00000000 Number of Symbols 00000000 Optional header size OOEO Characteristics O1OF Relocation information stripped Executable Image Line numbers stripped Local symbols stripped 32 bit word machine Magic 010B Linker Version 5.12 Size of Code 00000200 Size of Initialized Data 00000000 Size of Uninitialized Data 00000000 Address of Entry Point 00001000 Base of Code 00001000 Base of Data 00002000 Image Base 00400000 Section Alignment 00001000 File Alignment 00000200 Operating System Version 4.00 Image Version 0.00 Subsystem Version 4.00 Reserved 00000000 Image Size 00002000 Header Size 00000200 Checksum 00000000 Subsystem 0002 (Windows) DLL Characteristics 0000 Size Of Stack Reserve 00100000 Size Of Stack Commit 00001000 Size Of Heap Reserve 00100000 Size Of Heap Commit 00001000 Loader Flags 00000000 Number of Directories 00000010
Directory Name VirtAddr VirtSize ----------------------------------- -------- -------- Export 00000000 00000000 Import 00000000 00000000 Resource 00000000 00000000 Exception 00000000 00000000 Security 00000000 00000000 Base Relocation 00000000 00000000 Debug 00000000 00000000 Decription/Architecture 00000000 00000000 Machine Value (MIPS GP) 00000000 00000000 Thread Storage 00000000 00000000 Load Configuration 00000000 00000000 Bound Import 00000000 00000000 Import Address Table 00000000 00000000 Delay Import 00000000 00000000 СОМ Runtime Descriptor 00000000 00000000 (reserved) 00000000 00000000
Section Table ------------- Virtual Address 0001000 Virtual Size OOOOOE Raw Data Offset 000200 Raw Data Size 0000200 Relocation Offset 000000 Relocation Count 000 Line Number Offset 0000000 Line Number Count 000 Characteristics 0000020 Code Executable Readable
Disassembly
00401000 start: 00401000 E803000000 call fn_00401008 00401005 C3 ret 00401006 CC int 3 00401007 CC int 3 00401008 fn_00401008: 00401008 B8E8030000 mov eax,3E8h 0040100D C3 ret