Техника снятия дампа с защищенных приложений


             

Простые случаи дампинга - часть 2


В результате образуется текстовый файл (см. листинг 2), который необходимо преобразовать в exe, для чего потребуется написать специальную утилиту или поискать уже готовую.

:db 400000 L 7DE8

010:00400000 4D 5A 90 00 03 00 00 00-04 00 00 00 FF FF 00 00  MZР.............

010:00400010 B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00  ........@.......

010:00400040 0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68  ........!..L.!Th

010:00400050 69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F  is program canno

010:00400060 74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20  t be run in DOS

010:00400070 6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00  mode....$.......

Листинг 2 дамп памяти, снятый через history

Как вариант, можно воспользоваться бесплатным плагином IceExt (http://stenri.pisem.net/), значительно расширяющим функциональные возможности soft-ice. Если IceExt откажется запускаться, увеличьте размер кучи и стека до 8000h байт, отредактировав следующую ветвь реестра HKLM\SYSTEM\CurrentControlSet\Services\NTice.

Команда "!DUMP"

(см. рис. 2 и листинг 3) позволяет сохранять блоки памяти на диск в двоичном виде, что очень удобно:

Рисунок 2 снятие дампа в soft-ice с помощью плагина IceExt

:!DUMP

Dump memory to disk

!dump FileName Addr Len

Ex:

 !dump c:\dump.dat 400000 1000

 !dump \??\c:\dump.dat 400000 1000

 !dump \??\c:\dump.dat edx+ebx ecx

:!DUMP C:\dumped 400000 7DE8

DUMP: \??\C:\dumped 400000 7de8

Листинг 3 дамп памяти, снятый командой !DUMP плагина IceExt

Другой плагин — icedump (programmerstools.org/system/files?file=icedump6.026.zip) тоже умеет дампить память и, так же как и IceExt, он распространяется на бесплатной основе вместе с исходными текстами.

Полученный дамп можно загрузить в дизассемблер типа IDA Pro, но от его запуска лучше воздержаться (особенно на соседних компьютерах), поскольку для корректной работы необходимо восстановить таблицу импорта и ресурсы, но это настольно обширный вопрос, что здесь мы не будем его касаться, тем более, что существуют готовые утилиты: Import Reconstructor (http://www.wasm.ru/baixado.php?mode=tool&id=64) восстановит импорт, а Resource Rebuilder (http://www.wasm.ru/baixado.php?mode=tool&id=156) — ресурсы.




Содержание  Назад  Вперед