|
|
| Посл.отвђт | Сообщен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 |