實驗四 惡意程式碼分析實踐-實驗報告-20192422李俊潔
阿新 • • 發佈:2022-04-17
實驗四 惡意程式碼分析實踐
一.實驗過程
任務一 惡意程式碼檔案型別標識、脫殼與字串提取
檢視檔案型別
接著我們隨便查詢一個字串
Windows下輸入
find "a" RaDa.exe//查詢含有a的字串
如圖可見全是亂碼,我們推測是加殼導致的
使用工具PEiD對檔案RaDa.exe進行查殼
使用脫殼工具進行脫殼,生成了檔案RaDa_unpacked.exe
現在我們再次檢視字串
Windows下輸入
find "a" RaDa_unpacked.exe
可以發現不是亂碼了
開啟工具idag,選擇脫殼後的檔案
成功檢視到了檔案的作者資訊,如郵箱。
任務二 使用IDA Pro靜態或動態分析crackme1.exe與crakeme2.exe,尋找特定輸入,使其能夠輸出成功資訊。
crackmel1
隨便輸入一些引數,試探一下輸入格式
可以看到有兩種返回情況
開啟idag,分析該程式
可以看出,第一個和第三個我們都觸發過。
第一個為引數不對的返回情況。第三個為引數數量對但內容不對的返回情況
我們檢視函式呼叫圖
接著檢視401280函式段,檢視其彙編程式碼
猜測是要輸出的正確引數,即“I know the secret”。
現在我們再出輸入
crackme1.exe "I know the secret"
可以看到,返回的是輸入正確引數的情況。
總結:
“I think you are missing something”為引數不對的返回情況
“Pardon? What did you say?”為引數數量對但內容不對的返回情況
“You know how to speak to programs, Mr. Reverse-Engineer”為引數數量對且內容對的返回情況
crackmel2
隨便輸入一些引數,試探一下輸入格式
可以看到有兩種返回情況
開啟idag,分析該程式,可見如下返回情況
接著檢視函式呼叫圖
依然是檢視401280函式段,我們檢視其彙編程式碼
猜測首先程式名要正確,即改為crackmeplease.exe
然後就是和程式1一樣,輸入正確的引數,即“I know the secret”
現在我們來進行驗證,首先將程式名改為crackmeplease.exe
總結:
“I think you are missing something”為引數不對的返回情況
“I have an identity problem.”為程式名不對的返回情況
“Pardon? What did you say?”為程式名對,引數數量對但內容不對的返回情況
“We have a little secret: Chocolate”為程式名對,引數數量對且內容對的返回情況
任務三 分析一個自制惡意程式碼樣本rada
1.對檔案進行摘要,我選用MD5摘要
Windows下輸入
certutil -hashfile RaDa.exe MD5
檢視檔案型別
可知該二進位制檔案是32位,並帶有圖形化介面的windows PE檔案
更改樣本的檔名並再次進行md5摘要,發現結果沒有發生變化,即摘要值是一個文字的識別標誌。
2.分析檔案