Como eliminar aqueles chato ntdll.dbgUserBreakPoints
PatchINT3 é baseada em código de Pete Morris
Adicione este procedimento para a sua unidade, e também a inicialização
seção abaixo. No momento da execução, o agressor será substituído INT3
por uma instrução NOP.
PatchINT3 procedimento;
var
NOP: Byte;
BytesWritten: DWORD;
NTDLL: THandle;
P: Pointer;
começo
se Win32Platform <> VER_PLATFORM_WIN32_NT então
Exit;
NTDLL: = GetModuleHandle ( 'NTDLL.DLL');
= 0, em seguida, se NTDLL
Exit;
P: = GetProcAddress (NTDLL, 'DbgBreakPoint');
P = nula, em seguida, se
Exit;
tentar
se Char (P ^) <> # $ CC, em seguida,
Exit;
NOP: = $ 90;
se WriteProcessMemory (GetCurrentProcess, P @ NOP, 1,
BytesWritten) e
(BytesWritten = 1) então
FlushInstructionCache (GetCurrentProcess, P, 1);
excepto
/ / Não se preocupe se você vê um EAccessViolation aqui,
/ / É perfeitamente inócuo!
sobre EAccessViolation fazer;
else suscitar;
final;
final;
initialization
PatchINT3;

Delicious
Digg
Google
Yahoo