Учебник хакера


Softice - часть 14


Если интересует какие-то определенные имена, то используйте шаблоны:

:SYM w*

.text (0137:00401000 , 000145C1 bytes)
0137:004012E0 WinMain
0137:00405700 WinMainCRTStartup
0137:004013AD WndProc
0137:0040AF50 wcslen
0137:0040C160 wcsncnt
0137:004107A0 wctomb
0137:0040FA50 write_char
0137:0040FAD0 write_multi_char
0137:0040FB20 write_string

На экране список всех символьных имен, начинающихся с буквы w, все они расположены в сегменте .text (выполняемый сегмент, он начинается с адреса 0137:00401000 и имеет длину 0145C1H байт), т.е. эти имена – имена функций и процедур входящие в приложение GDIDEMO. Данные находятся в сегментах .data, .rdata, .idata.

8. Условные точки останова.

Одним из символов, определенных в приложении GDIDEMO, является функция LockWindowInfo. Назначение этой функции – возвращение адреса переменных, которые определяют свойства окна. Для того, чтобы ознакомиться с условными точками останова и точками останова на доступ к памяти, мы выполним следующие действий:

  • Установим точку останова на функцию LockWindowInfo
  • Отредактируем поставленную точку останова таким образом, чтобы она срабатывала по определенному нами условию.
  • Установим точку останова на доступ к ячейки памяти, для того чтобы отследить обращения к этой ячейке.

Установка точки останова на функцию LockWindowInfo.

Командой BPX LockWindowInfo поставим точку останова на выполнение на эту функцию. Каждый раз, когда в одном из окон приложения GDIDEMO нужно будет обновить информацию, программой будет вызываться функция LockWindowInfo, так как на эту функцию поставлена точка останова, то будет вызываться SoftIce. Командой BL проверьте, установилась ли точка останова. Запустите приложение командой X или G. Как только будет вызвана функция LockWindowInfo, SoftIce всплывет. Так как обновление происходит постоянно, то постоянно вызывается и SoftIce, что очень неудобно, если нас интересует обновление какого-либо конкретного окна. Чтобы перехватить вызов на обновление конкретного окна, к примеру, POLYDEMO, воспользуемся условной точкой останова.


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