· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Отработка EXCEPTION_BREAKPOINT

Посл.отвђт Сообщенiе


Дата: Ноя 29, 2003 11:56:02 · Поправил: Asterix

В своём отладчике после установки бряка(CCh) и его срабатывания
не могу вернуть байт на место, не пишет и всё, пробовал VirtualProtectEx
юзать не помогает, почему так? это какая-то хитрая защита у отлаживаемой
проги?
Зы: цель упакована ASPack'ом.
Код такой:
.if DBEvent.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT
          mov context.ContextFlags, CONTEXT_CONTROL
          invoke GetThreadContext, pi.hThread, OFFSET context
          mov eax, context.regEip
          mov ebx, myBreak
          .if eax==ebx
          dec context.regEip
          invoke VirtualProtectEx, DBEvent.u.CreateProcessInfo.hProcess, context.regEip,\
                                   sizeof BYTE, PAGE_EXECUTE_READWRITE, OFFSET OldProtect
          invoke WriteProcessMemory, DBEvent.u.CreateProcessInfo.hProcess,\
                                     context.regEip, OFFSET szWrite68h, sizeof BYTE, NULL
          test eax, eax
          jz @error
          invoke VirtualProtectEx, DBEvent.u.CreateProcessInfo.hProcess, context.regEip,\
                                   sizeof BYTE, OldProtect, OFFSET OldProtect
          invoke SetThreadContext, pi.hThread, OFFSET context


Дата: Ноя 29, 2003 13:43:55 · Поправил: Asterix

Всё, разобрался, вопрос снимается :-)


Дата: Ноя 29, 2003 20:44:27

Asterix

А ты напиши ответ сюда! Это правильное поведение на форуме.


Дата: Ноя 29, 2003 21:25:33 · Поправил: Asterix

volodya

А фиг его знает как это объяснить, но на старте при срабатывании
условия
.if DBEvent.dwDebugEventCode==CREATE_PROCESS_DEBUG_EVENT

мы могли использовать
DBEvent.u.CreateProcessInfo.hProcess

как переменную с хэндлом процесса, дальше при срабатывании условия
.if DBEvent.u.Exception.pExceptionRecord.ExceptionCode==EXCEPTION_BREAKPOINT

мы должны брать хэндл процесса из другой структуры, а именно
pi.hProcess

хотя я VirtualProtectEx всё-равно использовал, на всякий случай :-)


Дата: Ноя 29, 2003 21:33:28

Хм... Спасибо.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.108