-
_EPROCESS->Peb(_PEB)->BeingDebugged 置0
-
_EPROCESS->Peb(_PEB)->NtGlobalFlag 置0
-
_EPROCESS->Peb(_PEB)->ProcessHeap as ProcessHeap
调用 IsWindowsVistaOrGreater
如果大于等于 windows vista as FlagsOffset = 0x70
as ForceFlagsOffset = 0x74
否则
as ProcessHeapOffset = 0x14
as ForceFlagsOffset = 0x18
*(PULONG)(*ProcessHeap + FlagsOffset) < 2 就没有再调试 所以置 HEAP_GROWABLE(0x2)
*(PULONG)(*ProcessHeap + ForceFlagsOffset) == 0 就没有再调试 所以置 0
-
对付目标不断自己产生异常的问题 记录目标触发异常的地址 列出来 可以选择忽略目标异常地址 即可
-
NtQueryInformationProcess -> ProcessDebugFlags 原理检查 _EPROCESS->Flags.NoDebugInherit 1 调试 0 未调试