原文:The Ultimate Anti-Debugging Reference
1. Process Environment Block (PEB) 结构检测
PEB:进程环境块,保存了关于进程的环境信息,其结构在此可查看。
其指针被保存在 fs:[30h]
(32位)或 gs:[60h]
处。
1.1 NtGlobalFlag
检查 PEB+0x68
(32位)或 PEB+0xBC
(64位)处,若值为 0x70
(含堆校验标志)则可能被调试。
1.2 ProcessHeap 标志
PEB+0x18
(32位)或 PEB + 0x30
(64位)处保存了堆的起始地址
ForceFlags
字段位于 0x70
(Windows Vista及更高版本64位系统)处
Flags
字段位于 0x74
(Windows Vista及更高版本64位系统)处
检查这两个字段
1.3 BeingDebugged
位于PEB+0x2
处,1表示被调试