1. 程式人生 > >《惡意程式碼分析實戰》--第一章:靜態分析基礎技術

《惡意程式碼分析實戰》--第一章:靜態分析基礎技術

**請參考大神的連結:https://blog.csdn.net/baidu_41108490/article/details/80298973#commentBox
Lab1-1
這裡我只是記錄我的學習過程**

2、用PEtools開啟,檢視日期
.exe
這裡寫圖片描述
.dll
這裡寫圖片描述
發現.exe和.dll兩個檔案的編譯時間只相差了19秒

4,用dependency walker工具開啟
這裡寫圖片描述
這裡寫圖片描述
從圖中可以看出惡意程式碼執行了一些檔案操作行為。建立檔案(CreateFileA),查詢檔案(FindFirstFileA,FindNextFileA),複製檔案(CopyFileA),建立記憶體對映物件(CreateFileMappingA)。dll檔案建立程序執行程式(CreateProcess),建立互斥量(CreateMutexA,OpenMutexA),聯網(WS2_32.dll)等行為。

CreateMutex:作用是找出當前系統是否已經存在指定程序的例項。如果沒有則建立一個互斥量。如果成功,返回互斥體物件的控制代碼;0表示出錯。
OpenMutex:為現有的一個已命名互斥體物件建立一個新控制代碼。若成功,返回物件的控制代碼;零表示失敗。

小知識:什麼是互斥量
互斥量是一個可以處於兩態之一的變數:加鎖和解鎖。

ws2_32.dll是windows sockets應用程式介面,用於支援Internet和網路應用程式。Windows和需要執行TCP/IP網路通訊的應用程式會呼叫動態連結庫ws2_32.dll。如果它不可用,則計算機將連線不到外部網路。

5、用IDA開啟exe
這裡寫圖片描述


發現兩個kernel32.dll有著細微的差別,其中一個是kerne132.dll。可以推測惡意程式劫持了kernel32.dll,結合第4點推測它可能查詢一個可執行檔案。

這個檔案可以用來在主機作為惡意程式碼感染的跡象進行搜尋。

6、IDA開啟.dll
這裡寫圖片描述

結合ws2_32.dll推測它可能連結到這個IP地址,獲取exec命令來執行一個程式,一個sleep是用於命令後門程式進入休眠模式。

Lab1-2
2、用PEID開啟判斷是否加殼
這裡寫圖片描述
發現加殼了……下面進行脫殼。

首先,用ESP定律法找到程式入口點(回顧一下這個方法)
1)用OD開啟,單步F7
2)觀察此時esp的值,右鍵->資料視窗跟隨
3)在資料視窗右鍵下硬體訪問斷點。
4)F9執行,再單步幾步就到OEP處了。
這裡寫圖片描述


這裡寫圖片描述

下面進行脫殼,我直接用外掛OllyDump脫殼
這裡寫圖片描述
或者用LordPE dump,再用ImportREC修復即可。

再次用PEID檢測,沒有殼了
這裡寫圖片描述

3、用IDA開啟,開啟Imports欄
這裡寫圖片描述

4、檢視字串
這裡寫圖片描述
一個Malservice服務的名稱,一個連結,可以通過監視網路流量檢查被惡意程式碼感染的主機。

Lab1-3
2、用PEID檢測發現是FSG殼
這裡寫圖片描述

脫殼(手動脫不了FSG1.0的殼/(ㄒoㄒ)/~~)

Label1-4
2、沒加殼
3、用PEtools檢視時間,發現是個不可信時間
這裡寫圖片描述

4、用IDA開啟,檢視匯入表
這裡寫圖片描述

5、惡意程式碼建立的程式
這裡寫圖片描述

6、將資原始檔用Resource Hacker開啟,發現是一個.exe程式
這裡寫圖片描述

提取出來儲存成.exe檔案,再用IDA開啟,檢視字串,可以看到一個連結,推測wupdmgrd.exe程式是從這個連結下載得到的……(並不能實現????)