Come eliminare i fastidiosi ntdll.dbgUserBreakPoints
PatchINT3 si basa sul codice di Pete Morris
Aggiungi questa procedura per la sua unità, e anche l'inizializzazione
sezione sottostante. In fase di runtime, lo INT3 sarà sostituito
da una istruzione NOP.
PatchINT3 procedura;
var
NOP: Byte;
BytesWritten: DWORD;
Ntdll: THandle;
P: Pointer;
iniziare
se Win32Platform <> VER_PLATFORM_WIN32_NT poi
Uscita;
Ntdll: = GetModuleHandle ( 'Ntdll.dll');
ntdll se = 0 allora
Uscita;
P: = GetProcAddress (ntdll, 'DbgBreakPoint');
se P = zero allora
Uscita;
provare
se Char (P ^) <> # $ CC quindi
Uscita;
NOP: = $ 90;
se WriteProcessMemory (GetCurrentProcess, P @ NOP, 1,
BytesWritten) e
(BytesWritten = 1) allora
FlushInstructionCache (GetCurrentProcess, P, 1);
salvo
/ / Non ti preoccupare se vedi uno EAccessViolation qui,
/ / È perfettamente innocuo!
su EAccessViolation fare;
altro sollevare;
fine;
fine;
inizializzazione
PatchINT3;

Delicious
Digg
Google
Yahoo