Ntdll.dbguserbreakpoint (otro fix)


Cómo eliminar esos molestos ntdll.dbgUserBreakPoints
PatchINT3 está basado en el código de Pete Morris
Agregar este procedimiento en su unidad, y también la inicialización
la sección de abajo. En tiempo de ejecución, el infractor INT3 será reemplazado
por una instrucción NOP.
procedimiento PatchINT3
var
& nbsp & nbsp & nbsp & nbsp NOP : Byte
& nbsp & nbsp & nbsp & nbsp BytesWritten : DWORD
& nbsp & nbsp & nbsp & nbsp NtDll : THandle
& nbsp & nbsp & nbsp & nbsp P : Puntero
begin
& nbsp & nbsp & nbsp & nbsp si Win32Platform <> VER_PLATFORM_WIN32_NT, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp NtDll := GetModuleHandle('NTDLL.DLL')
& nbsp & nbsp & nbsp & nbsp si NtDll = 0, entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp P := GetProcAddress(NtDll, 'DbgBreakPoint')
& nbsp & nbsp & nbsp & nbsp si P = nil then
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp probar

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si Char(P^) <> #$CC, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp NOP := $90
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si WriteProcessMemory(GetCurrentProcess, P, @NOP, 1,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp BytesWritten) y
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp (BytesWritten = 1) a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FlushInstructionCache(GetCurrentProcess, P, 1)
& nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp //no se asuste si ve un EAccessViolation aquí,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // es perfectamente inofensivo!
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sobre EAccessViolation hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp demás elevar
& nbsp & nbsp & nbsp & nbsp final
fin
inicialización
& nbsp & nbsp & nbsp & nbsp PatchINT3









Ntdll.dbguserbreakpoint (otro fix)


Ntdll.dbguserbreakpoint (otro fix) : Multi-millones de consejos para hacer su vida mas facil.


Como eliminar esos molestos ntdll.dbgUserBreakPoints
PatchINT3 esta basado en el codigo de Pete Morris
Agregar este procedimiento en su unidad, y tambien la inicializacion
la seccion de abajo. En tiempo de ejecucion, el infractor INT3 sera reemplazado
por una instruccion NOP.
procedimiento PatchINT3
var
& nbsp & nbsp & nbsp & nbsp NOP : Byte
& nbsp & nbsp & nbsp & nbsp BytesWritten : DWORD
& nbsp & nbsp & nbsp & nbsp NtDll : THandle
& nbsp & nbsp & nbsp & nbsp P : Puntero
begin
& nbsp & nbsp & nbsp & nbsp si Win32Platform <> VER_PLATFORM_WIN32_NT, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp NtDll := GetModuleHandle('NTDLL.DLL')
& nbsp & nbsp & nbsp & nbsp si NtDll = 0, entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp P := GetProcAddress(NtDll, 'DbgBreakPoint')
& nbsp & nbsp & nbsp & nbsp si P = nil then
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp probar

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si Char(P^) <> #$CC, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp NOP := $90
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si WriteProcessMemory(GetCurrentProcess, P, @NOP, 1,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp BytesWritten) y
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp (BytesWritten = 1) a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FlushInstructionCache(GetCurrentProcess, P, 1)
& nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp //no se asuste si ve un EAccessViolation aqui,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // es perfectamente inofensivo!
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sobre EAccessViolation hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp demas elevar
& nbsp & nbsp & nbsp & nbsp final
fin
inicializacion
& nbsp & nbsp & nbsp & nbsp PatchINT3


Ntdll.dbguserbreakpoint (otro fix)

Ntdll.dbguserbreakpoint (otro fix) : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación