Программирование в машинных кодах или soft-ice как logger

       

условная точка останова, распечатывающая имена всех открываемых файлов


Что изменилось? Появился вывод имени файла: 'D esp->
4 L 20', где 'D' – команда отображения дампа, 'esp->
4' – указатель на первый аргумент функции CreateFileA

(что открывать), а 'L 20' — сколько байт выводить (конкретное значение выбирается по вкусу). Протестируем обновленный вариант. Нажимаем <Ctrl-D>
, выходим из отладчика, запускам какую-нибудь программу, за которой хотим прошпионить (например, FAR), затем, вновь нажимаем <Ctrl-D>
, заходим в отладчик и говорим 'bd 0' для прекращения шпионажа. Выходим из soft-ice, заходим в Symbol Loader и сохраняем историю на диск.

На этот раз мы получаем:

Break due to BPX KERNEL32!CreateFileA  DO "d esp->
4 L 20;x;" (ET=3.64 seconds)

0010:004859E8 43 4F 4E 4F 55 54 24 00-43 4F 4E 49 4E 24 00 49  CONOUT$.CONIN$.I

0010:004859F8 6E 74 65 72 66 61 63 65-00 4D 6F 75 73 65 00 25  nterface.Mouse.%

Break due to BPX KERNEL32!CreateFileA  DO "d esp->
4 L 20;x;" (ET=8.98 milliseconds)

0010:004859F0 43 4F 4E 49 4E 24 00 49-6E 74 65 72 66 61 63 65  CONIN$.Interface

0010:00485A00 00 4D 6F 75 73 65 00 25-63 00 25 30 32 64 3A 25  .Mouse.%c.%02d:%

Break due to BPX KERNEL32!CreateFileA  DO "d esp->
4 L 20;x;" (ET=16.93 milliseconds)

0010:00492330 43 3A 5C 50 72 6F 67 72-61 6D 20 46 69 6C 65 73  C:\Program Files

0010:00492340 5C 46 61 72 5C 46 61 72-45 6E 67 2E 6C 6E 67 00  \Far\FarEng.lng.



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