惡意代碼分析實戰 Lab16-01

知識點:
一、 使用windowsAPI來探測調試器是否存在反調試技術
IsDebuggerPresent
CheckRemoteDebuggerPresent
NtQueryInformationProcess
OutputDebugString
二、 手動檢測數據結構
檢測BeingDebugged屬性
fs:[30]指向PEB的基地址,PEB基地址偏移爲2的地方是BeingDebugged標誌的位置。BeingDebugged爲0,則沒有調試器附加。
檢測ProcessHeap屬性
ProcessHeap在PEB基地址偏移0x18處。Winxp系統中,ForceFlags屬性位於堆頭部偏移量0x10處。
檢測NTGlobalFlag
PEB結構偏移量0x68處,決定如何創建堆結構,若此位置值爲0x70,則進程正運行在調試器中。
分析報告
1. 樣本概況
樣本名稱是Lab16-01.exe,編譯器爲 Microsoft Visual C++ v6.0。
1.1樣本信息
樣本名稱:Lab16-01.exe
MD5值: 7FAAFC7E4A5C736EBFEE6ABBBC812D80
SHA1值:625628D4C91D4193474735DA011903642B2C916E
樣本行爲:使用了三種不同的反調試技術來阻止調試分析。
1.2測試環境及工具
測試環境:WinXP
測試工具:IDA 、OD
2. 惡意代碼分析
使用了BeingDebugged、ProcessHeap、NTGlobalFLag這三種反調試技術來阻止調試
 
 
一旦發現樣本正在被調試,則程序將從磁盤上刪除自身。
 
3. 總結
使用OD的插件PhantOm可以防禦這些反調試技術。
發佈了58 篇原創文章 · 獲贊 17 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章