Каков принцип точки останова памяти ollydbg?

Кажется, что можно установить только одну точку останова памяти, и, кажется, не имеет значения, на какой строке установлена ​​точка останова памяти, очень странно, кто-нибудь может объяснить?

2 ответа

Точки останова памяти в Ollydbg применяются к блоку памяти. Обратите внимание, что наименьший возможный блок обычно составляет 4096 байт (размер страницы). Вы можете выбрать кусок кода в представлении дизассемблера и установить для него точку останова памяти. Вы можете установить точки останова памяти либо при доступе, либо при записи. Это внутренне реализовано с помощью защитных страниц, которые используют модификатор PAGE_GUARD. При обращении к памяти (чтение / запись) возникает исключение STATUS_GUARD_PAGE_VIOLATION, которое обрабатывается Ollydbg.

пример

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

OllyDbg использовать int 3 установить точки останова, и вы можете установить столько точек останова, сколько захотите.

Проверьте, действительно ли вы определяете точки останова в сегменте кода, а не в данных.

Другие вопросы по тегам