反調(diào)試專題丨反調(diào)試之NtGlobaFlag-當(dāng)前視點(diǎn)
一、32位系統(tǒng)
nt!_PEB???+0x000 InheritedAddressSpace?:?UChar???+0x001 ReadImageFileExecOptions?:?UChar???+0x002 BeingDebugged????:?UChar??????????????? isDbg值,8字節(jié)???+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結(jié)構(gòu)???+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的個(gè)數(shù)???+0x068 NtGlobalFlag?????:?Uint4B?? .?? .?? .
PEB?有一個(gè)名為NtGlobalFlag(32位系統(tǒng)下偏移量0x68)的字段,程序可以挑戰(zhàn)該字段以確定它們是否正在被調(diào)試。通常,當(dāng)進(jìn)程未被調(diào)試時(shí),NtGlobalFlag字段包含值0x0。調(diào)試進(jìn)程時(shí),該字段通常包含值0x70,表示設(shè)置了以下標(biāo)志:
(相關(guān)資料圖)
標(biāo)志
FLG_HEAP_ENABLE_TAIL_CHECK
FLG_HEAP_ENABLE_FREE_CHECK
FLG_HEAP_VALIDATE_PARAMETERS
其余
所以可以通過(guò)檢測(cè)此標(biāo)志位來(lái)檢測(cè)是否被調(diào)試。實(shí)現(xiàn)代碼可以通過(guò)匯編或者通過(guò)C++實(shí)現(xiàn),匯編實(shí)現(xiàn)如下:
DWORD?MyIsDebug1(){??? DWORD Flag?=?0;??? __asm?{??? mov eax,fs:[30h]??? mov eax,[eax+68h]??? mov Flag,eax}????return?Flag;}
完整代碼如下:
// :?此文件包含?"main"?函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。//#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"調(diào)試中",?MB_OK);???????}????}????return?1;}int?main(){????//IsDebuggerPresent();??? CreateThread(NULL,?NULL,?MyIsDebug,?NULL,?NULL,?NULL);??? std::cout?<<?"Hello World!\n";??? system("pause");????return?0;}
二、64位系統(tǒng)
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位系統(tǒng)下面,NtGlobalFlag標(biāo)志位有所不同,位于PEB偏移0xbc。其余和x86沒(méi)有區(qū)別??梢酝ㄟ^(guò)readgsqword(60h)獲取到PED地址,再檢查偏移0xbc位置標(biāo)志位達(dá)到反調(diào)試效果。
三、反反調(diào)試
1.?手動(dòng)修改標(biāo)志位
2.?使用OD插件
3.?在WinDbg中,在禁用調(diào)試堆的情況下啟動(dòng)程序?( windbg -hd )
標(biāo)簽:
原標(biāo)題:反調(diào)試專題丨反調(diào)試之NtGlobaFlag-當(dāng)前視點(diǎn)
- 反調(diào)試專題丨反調(diào)試之NtGlobaFlag-當(dāng)前視點(diǎn)
- 俄軍方高層:不排除西方情報(bào)機(jī)構(gòu)參與挑唆軍事叛亂 環(huán)球觀速訊
- 今晚中超聯(lián)賽重燃戰(zhàn)火 天津津門虎隊(duì)將在主場(chǎng)迎戰(zhàn)青島海牛隊(duì)|每日觀察
- 國(guó)臺(tái)辦:《關(guān)于支持福建探索海峽兩岸融合發(fā)展新路 建設(shè)兩岸融合發(fā)展示范區(qū)的意見(jiàn)...
- 每日速遞:國(guó)際足聯(lián)官宣:2023年國(guó)際足聯(lián)世俱杯賽將在沙特吉達(dá)舉辦
- 世界速讀:2023廣州天河區(qū)中考成績(jī)?cè)谀牟??(附入口?/a>
- 西游釋厄傳有哪些版本?西游記釋厄傳如何安裝?
- 《夢(mèng)幻西游》69滿強(qiáng)壯多少錢?強(qiáng)身和強(qiáng)壯點(diǎn)哪個(gè)劃算?
- 天天時(shí)訊:水泥的規(guī)格型號(hào)(水泥規(guī)格型號(hào)有哪些)
- 說(shuō)說(shuō)跨年夜_淺淺聊聊:跨年夜氛圍感拉滿
- ?國(guó)網(wǎng)息縣供電公司:炎炎中考日 保電正當(dāng)時(shí) 微動(dòng)態(tài)
- 盜賊換武器宏命令_盜賊換武器宏
- 環(huán)球即時(shí)看!?信陽(yáng)市清欠辦對(duì)羅山縣開展保障農(nóng)民工工資支付專項(xiàng)調(diào)研
- 焦點(diǎn)!pt950鉑金回收價(jià)格今日多少錢一克(2023年06月28日)
- 要聞速遞:?息縣舉行建黨102周年暨“七一”表彰大會(huì)
- 當(dāng)前觀察:西平縣二郎鎮(zhèn)新時(shí)代文明實(shí)踐所深入小王莊小學(xué)開展“掃黃打非”宣傳活動(dòng)
- 世界球精選!鄧州市彭橋鎮(zhèn)行政審批服務(wù)中心:持續(xù)優(yōu)化營(yíng)商環(huán)境 提高群眾辦事效率
- 環(huán)球熱門:?西平縣應(yīng)急管理局持續(xù)開展法治教育培訓(xùn)輪訓(xùn)
- 世界熱門:筆記本電腦坐上過(guò)山車 下半年或復(fù)蘇
- 鐵路暑運(yùn)7月1日啟動(dòng) 鄭州鐵路預(yù)計(jì)發(fā)送旅客3300萬(wàn)人次_世界熱頭條
- 環(huán)球新動(dòng)態(tài):恢復(fù)出廠設(shè)置是什么意思 手機(jī)恢復(fù)出廠設(shè)置后怎么還原數(shù)據(jù)?
- 世界通訊!ipo審核是什么意思?ipo審核通過(guò)后多久發(fā)行?
- 酒駕和醉駕的分界線是多少?酒駕和醉駕哪個(gè)嚴(yán)重? 全球短訊
- 環(huán)球觀天下!貧民窟軍需官在哪?魔獸世界詛咒密碼任務(wù)怎么做?
- 天天觀點(diǎn):精軋管特點(diǎn)有哪些?精軋管生產(chǎn)工藝要點(diǎn)有什么?
- 廣東高考志愿填報(bào)6月28日開始 填報(bào)志愿要記得“五看”
- 【天天時(shí)快訊】老人為啥說(shuō)被子不能橫著蓋 床單顏色的十大忌諱介紹
- 大眾計(jì)劃推出入門級(jí)ID.1車型 售價(jià)有望低于2.2萬(wàn)美元_當(dāng)前熱文
- 【熱聞】信托公司管理辦法原則 信托公司管理辦法具體內(nèi)容是什么?
- 環(huán)球新動(dòng)態(tài):有助于睡眠的顏色有哪些 臥室最旺三種顏色床分別是什么?
- 反調(diào)試專題丨反調(diào)試之NtGlobaFlag-當(dāng)前視點(diǎn)
- 俄軍方高層:不排除西方情報(bào)機(jī)構(gòu)參與挑唆軍
- 今晚中超聯(lián)賽重燃戰(zhàn)火 天津津門虎隊(duì)將在
- 國(guó)臺(tái)辦:《關(guān)于支持福建探索海峽兩岸融合發(fā)
- 每日速遞:國(guó)際足聯(lián)官宣:2023年國(guó)際足聯(lián)世
- 世界速讀:2023廣州天河區(qū)中考成績(jī)?cè)谀牟椋?/a>
- 西游釋厄傳有哪些版本?西游記釋厄傳如何安
- 《夢(mèng)幻西游》69滿強(qiáng)壯多少錢?強(qiáng)身和強(qiáng)壯點(diǎn)
- 天天時(shí)訊:水泥的規(guī)格型號(hào)(水泥規(guī)格型號(hào)有
- 說(shuō)說(shuō)跨年夜_淺淺聊聊:跨年夜氛圍感拉滿
- ?國(guó)網(wǎng)息縣供電公司:炎炎中考日 保電正當(dāng)
- 盜賊換武器宏命令_盜賊換武器宏
- 環(huán)球即時(shí)看!?信陽(yáng)市清欠辦對(duì)羅山縣開展保
- 焦點(diǎn)!pt950鉑金回收價(jià)格今日多少錢一克(2
- 要聞速遞:?息縣舉行建黨102周年暨“七一
- 當(dāng)前觀察:西平縣二郎鎮(zhèn)新時(shí)代文明實(shí)踐所深
- 世界球精選!鄧州市彭橋鎮(zhèn)行政審批服務(wù)中心
- 環(huán)球熱門:?西平縣應(yīng)急管理局持續(xù)開展法治
- 世界熱門:筆記本電腦坐上過(guò)山車 下半年或
- 鐵路暑運(yùn)7月1日啟動(dòng) 鄭州鐵路預(yù)計(jì)發(fā)送旅客
- 環(huán)球新動(dòng)態(tài):恢復(fù)出廠設(shè)置是什么意思 手機(jī)
- 世界通訊!ipo審核是什么意思?ipo審核通過(guò)
- 酒駕和醉駕的分界線是多少?酒駕和醉駕哪個(gè)
- 環(huán)球觀天下!貧民窟軍需官在哪?魔獸世界詛
- 天天觀點(diǎn):精軋管特點(diǎn)有哪些?精軋管生產(chǎn)工
- 廣東高考志愿填報(bào)6月28日開始 填報(bào)志愿要
- 【天天時(shí)快訊】老人為啥說(shuō)被子不能橫著蓋
- 大眾計(jì)劃推出入門級(jí)ID.1車型 售價(jià)有望低于
- 【熱聞】信托公司管理辦法原則 信托公司管
- 環(huán)球新動(dòng)態(tài):有助于睡眠的顏色有哪些 臥室