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

       

Внешний вид программы HIEW EXE


Программа на Рисунок 4.2.3 проста и корректна. Представьте теперь, что при отладке Вы случайно изменили одну команду: вместо JE поставили JNE. В результате поспе трансляции программа перестала работать. Можно исправить ее, не прибегая к ассемблерному тексту? Конечно. Для этого в начале ее следует дизассемблировать, найти ошибку, а потом воспользоваться программой HIEW.EXE. Вообще говоря, можно ограничиться только программой HIEW, так как она вполне корректно дизассемблирует. Однако мы нарочно проведем исправление в два этапа.

Дизассемблируем модуль при помощи программы DUMPBIN.EXE. Вот дизассемблированный текст программы (Рисунок 4.2.4).

Dump of file cons1.exe

File Type: EXECUTABLE IMAGE

00401000: 6A F5 push 0F5h 00401002: E8 2B 00 00 00 call 00401032 00401007: 83 F8 FF cmp eax,0FFFFFFFFh 0040100A: 75 1E jne 0040102A 0040100C: A3 16 30 40 00 mov [00403016],eax 00401011: 6A 00 push 0 00401013: 68 12 30 40 00 push 403012h 00401018: 6A 11 push 11h 0040101A: 68 00 30 40 00 push 403000h 0040101F: FF 35 16 30 40 00 push dword ptr ds:[00403016h] 00401025: E8 0E 00 00 00 call 00401038 0040102A: 6A 00 push 0 0040102C: E8 0D 00 00 00 call 0040103E 00401031: CC int 3 00401032: FF 25 08 20 40 00 jmp dword ptr ds:[00402008h] 00401038: FF 25 00 20 40 00 jmp dword ptr ds:[00402000h] 0040103E: FF 25 04 20 40 00 jmp dword ptr ds:[00402004h]



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