反调试专题丨反调试之NtGlobaFlag-当前视点
一、32位系统
nt!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar isDbg值,8字节 +0x003 BitField : UChar +0x003 ImageUsesLargePages : Pos 0, 1 Bit +0x003 IsProtectedProcess : Pos 1, 1 Bit +0x003 IsLegacyProcess : Pos 2, 1 Bit +0x003 IsImageDynamicallyRelocated : Pos 3, 1 Bit +0x003 SkipPatchingUser32Forwarders : Pos 4, 1 Bit +0x003 SpareBits : Pos 5, 3 Bits +0x004 Mutant : Ptr32 Void +0x008 ImageBaseAddress : Ptr32 Void 镜像基址 +0x00c Ldr : Ptr32 _PEB_LDR_DATA _PEB_LDR_DATA结构 +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS +0x014 SubSystemData : Ptr32 Void +0x018 ProcessHeap : Ptr32 Void +0x01c FastPebLock : Ptr32 _RTL_CRITICAL_SECTION +0x020 AtlThunkSListPtr : Ptr32 Void +0x024 IFEOKey : Ptr32 Void +0x028 CrossProcessFlags : Uint4B +0x028 ProcessInJob : Pos 0, 1 Bit +0x028 ProcessInitializing : Pos 1, 1 Bit +0x028 ProcessUsingVEH : Pos 2, 1 Bit +0x028 ProcessUsingVCH : Pos 3, 1 Bit +0x028 ProcessUsingFTH : Pos 4, 1 Bit +0x028 ReservedBits0 : Pos 5, 27 Bits +0x02c KernelCallbackTable : Ptr32 Void +0x02c UserSharedInfoPtr : Ptr32 Void +0x030 SystemReserved : [1] Uint4B +0x034 AtlThunkSListPtr32 : Uint4B +0x038 ApiSetMap : Ptr32 Void +0x03c TlsExpansionCounter : Uint4B +0x040 TlsBitmap : Ptr32 Void +0x044 TlsBitmapBits : [2] Uint4B +0x04c ReadOnlySharedMemoryBase : Ptr32 Void +0x050 HotpatchInformation : Ptr32 Void +0x054 ReadOnlyStaticServerData : Ptr32 Ptr32 Void +0x058 AnsiCodePageData : Ptr32 Void +0x05c OemCodePageData : Ptr32 Void +0x060 UnicodeCaseTableData : Ptr32 Void +0x064 NumberOfProcessors : Uint4B CPU的个数 +0x068 NtGlobalFlag : Uint4B . . .
PEB 有一个名为NtGlobalFlag(32位系统下偏移量0x68)的字段,程序可以挑战该字段以确定它们是否正在被调试。通常,当进程未被调试时,NtGlobalFlag字段包含值0x0。调试进程时,该字段通常包含值0x70,表示设置了以下标志:
(相关资料图)
标志
FLG_HEAP_ENABLE_TAIL_CHECK
FLG_HEAP_ENABLE_FREE_CHECK
FLG_HEAP_VALIDATE_PARAMETERS
其余
所以可以通过检测此标志位来检测是否被调试。实现代码可以通过汇编或者通过C++实现,汇编实现如下:
DWORD MyIsDebug1(){ DWORD Flag = 0; __asm { mov eax,fs:[30h] mov eax,[eax+68h] mov Flag,eax} return Flag;}
完整代码如下:
// : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include #include DWORD MyIsDebug1(){ DWORD Flag = 0; __asm { mov eax,fs:[30h] mov eax,[eax+68h] mov Flag,eax} return Flag;}DWORD WINAPI MyIsDebug( LPVOID lpThreadParameter){ DWORD myFlag = 0; while (1) { myFlag = MyIsDebug1(); if (myFlag == 0x70) { MessageBox(NULL, L"警告", L"调试中", MB_OK); } } return 1;}int main(){ //IsDebuggerPresent(); CreateThread(NULL, NULL, MyIsDebug, NULL, NULL, NULL); std::cout << "Hello World!\n"; system("pause"); return 0;}
二、64位系统
ntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 BitField : UChar +0x003 ImageUsesLargePages : Pos 0, 1 Bit +0x003 IsProtectedProcess : Pos 1, 1 Bit +0x003 IsImageDynamicallyRelocated : Pos 2, 1 Bit +0x003 SkipPatchingUser32Forwarders : Pos 3, 1 Bit +0x003 IsPackagedProcess : Pos 4, 1 Bit +0x003 IsAppContainer : Pos 5, 1 Bit +0x003 IsProtectedProcessLight : Pos 6, 1 Bit +0x003 IsLongPathAwareProcess : Pos 7, 1 Bit +0x004 Padding0 : [4] UChar +0x008 Mutant : Ptr64 Void +0x010 ImageBaseAddress : Ptr64 Void +0x018 Ldr : Ptr64 _PEB_LDR_DATA +0x020 ProcessParameters : Ptr64 _RTL_USER_PROCESS_PARAMETERS +0x028 SubSystemData : Ptr64 Void +0x030 ProcessHeap : Ptr64 Void +0x038 FastPebLock : Ptr64 _RTL_CRITICAL_SECTION +0x040 AtlThunkSListPtr : Ptr64 _SLIST_HEADER +0x048 IFEOKey : Ptr64 Void +0x050 CrossProcessFlags : Uint4B +0x050 ProcessInJob : Pos 0, 1 Bit +0x050 ProcessInitializing : Pos 1, 1 Bit +0x050 ProcessUsingVEH : Pos 2, 1 Bit +0x050 ProcessUsingVCH : Pos 3, 1 Bit +0x050 ProcessUsingFTH : Pos 4, 1 Bit +0x050 ProcessPreviouslyThrottled : Pos 5, 1 Bit +0x050 ProcessCurrentlyThrottled : Pos 6, 1 Bit +0x050 ReservedBits0 : Pos 7, 25 Bits +0x054 Padding1 : [4] UChar +0x058 KernelCallbackTable : Ptr64 Void +0x058 UserSharedInfoPtr : Ptr64 Void +0x060 SystemReserved : Uint4B +0x064 AtlThunkSListPtr32 : Uint4B +0x068 ApiSetMap : Ptr64 Void +0x070 TlsExpansionCounter : Uint4B +0x074 Padding2 : [4] UChar +0x078 TlsBitmap : Ptr64 Void +0x080 TlsBitmapBits : [2] Uint4B +0x088 ReadOnlySharedMemoryBase : Ptr64 Void +0x090 SharedData : Ptr64 Void +0x098 ReadOnlyStaticServerData : Ptr64 Ptr64 Void +0x0a0 AnsiCodePageData : Ptr64 Void +0x0a8 OemCodePageData : Ptr64 Void +0x0b0 UnicodeCaseTableData : Ptr64 Void +0x0b8 NumberOfProcessors : Uint4B +0x0bc NtGlobalFlag : Uint4B
可以看到64位系统下面,NtGlobalFlag标志位有所不同,位于PEB偏移0xbc。其余和x86没有区别。可以通过readgsqword(60h)获取到PED地址,再检查偏移0xbc位置标志位达到反调试效果。
三、反反调试
1. 手动修改标志位
2. 使用OD插件
3. 在WinDbg中,在禁用调试堆的情况下启动程序 ( windbg -hd )
标签:
- 生意社:2026年6月16日广东东莞玖龙纸业废纸收购价格上调
- QoderWork上线“意识“功能:让AI学会记忆、反思和成长-每日消息
- 港股异动 | 中煤能源(01898)跌近3% 前5个月商品煤销量同比下降8.1% 机构预期未...
- USDA维持2026/27年度豆粕产量6502.5万短吨-热门看点
- 每日头条!潮宏基2025年净利4.97亿增长156.66% 董事长薪酬330.09万 今年一季报净利2.64亿续增
- 每日精选:和讯李景峰:机构资金开始加仓了!
- 中山市先觉智能科技有限公司成立 注册资本10万人民币
- 焦点讯息:西部牧业:截至6月10日公司的股东总数为1.51万户
- 6月15日科创创业ETF嘉实基金份额减少1200万份,重仓股宁德时代、中际旭创、新易盛
- 康臣药业(01681.HK)发布公告,于2026年6月15日斥资226.39万港元回购16.8万股 每日热讯
- 南通启涛再生资源有限公司成立 注册资本1000万人民币|每日快看
- 【独家焦点】海尔智家获得实用新型专利授权:“空调内机结构及空调器”
- 生意社玻璃6月15日均差继续负向扩大为-0.15元/平方米 微头条
- 生意社氧化镨6月15日均线下穿 均差为-500.00元/吨 动态
- 观天下!生意社碳酸锂-电池级6月15日均差继续负向缩小为-3450.00元/吨
- 每日消息!报告:今年夏令快消品或总体温和增长
- 今日这些个股异动 主力加仓电子、通信板块
- 新华视点丨各地积极推进绿色低碳发展
- 要闻:不用远行!临沂大峡谷漂流,山东人的夏日玩水后花园
- 2026年“春招”共提供超1268万个岗位 每日热点
- 一节课没上就要扣45%学费?驾校退费,怎样才合理
- 百事通!国家金融监督管理总局临汾监管分局核准景泽平洪洞洪都村镇银行副行长、董...
- 热点评!港股异动 | 东岳集团(00189)涨超7% 制冷剂市场供需偏紧 价格大涨30%创近十年新高
- 汉口银行行长毛锋任职资格获批
- 高考刚结束,综评即刻开考!学霸齐聚南大上演“巅峰对决”|焦点报道
- 【独家】露笑科技:公司董事辞职
- 生意社氧化镝6月14日均差为25750.00元/吨 由正向扩大转为缩小
- 快看:电光科技:拟定增募资不超14亿元 用于数据中心项目等
- 微动态丨开封走失男童搜救持续:河道水位下降,救援队正下河搜寻
- 前沿资讯!生意社炭黑6月13日均差为193.50元/吨 由正向扩大转为缩小
- 生意社:2026年6月16日广东东莞玖龙纸业废
- QoderWork上线“意识“功能:让AI学会记忆
- 港股异动 | 中煤能源(01898)跌近3% 前5
- USDA维持2026/27年度豆粕产量6502.5万短吨-
- 每日头条!潮宏基2025年净利4.97亿增长156.6
- 每日精选:和讯李景峰:机构资金开始加仓了
- 中山市先觉智能科技有限公司成立 注册资本
- 焦点讯息:西部牧业:截至6月10日公司的股
- 6月15日科创创业ETF嘉实基金份额减少1200万
- 康臣药业(01681.HK)发布公告,于2026年6月1
- 南通启涛再生资源有限公司成立 注册资本10
- 【独家焦点】海尔智家获得实用新型专利授权
- 生意社玻璃6月15日均差继续负向扩大为-0.15
- 生意社氧化镨6月15日均线下穿 均差为-500.
- 观天下!生意社碳酸锂-电池级6月15日均差继
- 每日消息!报告:今年夏令快消品或总体温和
- 今日这些个股异动 主力加仓电子、通信板块
- 新华视点丨各地积极推进绿色低碳发展
- 要闻:不用远行!临沂大峡谷漂流,山东人的
- 2026年“春招”共提供超1268万个岗位 每日热点
- 一节课没上就要扣45%学费?驾校退费,怎样
- 百事通!国家金融监督管理总局临汾监管分局
- 热点评!港股异动 | 东岳集团(00189)涨超
- 汉口银行行长毛锋任职资格获批
- 高考刚结束,综评即刻开考!学霸齐聚南大上
- 【独家】露笑科技:公司董事辞职
- 生意社氧化镝6月14日均差为25750.00元/吨
- 快看:电光科技:拟定增募资不超14亿元 用
- 微动态丨开封走失男童搜救持续:河道水位下
- 前沿资讯!生意社炭黑6月13日均差为193.50元











