反病毒引擎掃描
分析前,最好拿多個反病毒軟件掃描下這個文件,幫助分析
哈希值
唯一標識,常用算法MD5算法,SHA-1算法
查找字符串
主要是文件訪問的URL等,這些字符串通常是以ASCII或Unicode格式存儲;分別每個字符使用1個字節(jié)和兩個字節(jié)
加殼
也可以不脫殼直接操作,大多數(shù)還是先脫殼在分析;
PEID早以停止維護,但還是能用它看頭文件;用exeinfoPE
PE文件格式
以上都是不考慮格式進行掃描的工具;
連接庫與函數(shù)
分靜態(tài)鏈接、運行時鏈接與動態(tài)鏈接;靜態(tài)鏈接UNIX與Linux中常用,win不常用
使用Dependency Walker探索動態(tài)鏈接函數(shù)
命名約定
- 每當微軟更新一個函數(shù),且新函數(shù)與原函數(shù)不兼容時,微軟會繼續(xù)支持原來舊函數(shù);這時新函數(shù)會與舊函數(shù)有相同的名字,并在后面加上Ex,更新兩次的函數(shù)會加兩個Ex后綴。
例如,CreateWindowEx - 以字符串作為參數(shù)的許多函數(shù)在他們的名字后面會包含一個A或W;例如CreateDirectoryW
沙箱
沙箱只報告基本功能,不告訴你它做了什么。
簡單而粗糙,應該作為惡意代碼分析的第一步,當有大量惡意代碼需要分析時,沙箱是一個不錯的選擇。
沙箱只能簡單地運行可執(zhí)行程序,不能帶有命令行選項,當然后門程序也不能,因為它需要一些控制命令才會啟動特定行為,還有有些惡意代碼被設置為等待一天才去執(zhí)行,我們可能錯過,因而大多數(shù)沙箱對sleep函數(shù)進行了掛鉤,并設置為只進行很短的時間休眠,但我們還是要提防。還有沙箱模擬的環(huán)境可能也有問題,畢竟很多惡意代碼都是針對某些操作系統(tǒng)的。
運行惡意代碼
win中有一個rundll32.exe程序,它提供了一個運行DLL的平臺。
語法格式
rundll32.exe DLLname, Export arguements
進程監(jiān)視器(process monitor)
主要功能是監(jiān)視進程,例如它創(chuàng)建了一個文件、修改了注冊表等等。
要注意的是如果要監(jiān)視的是開機自啟的,我們需要使用進程監(jiān)視器的啟動選項,將其安裝為一個自啟動驅(qū)動。
進程瀏覽器(process explorer)
記憶:粉色-服務 藍色-進程 綠色-新進程 紅色-被終止進程
- 驗證功能
驗證的是磁盤上的鏡像文件,而不是內(nèi)存中的,但對于進程替換技術(shù)失效! - 比較字符串
用來識別進程替換 - 使用依賴遍歷器
- 分析惡意文檔
其它常用工具
Regshot
用來比較兩個注冊表的快照,來查看注冊表的修改
ApateDNS
在本機上監(jiān)視UDP的53端口,對用戶指定的IP地址給出虛假的DNS響應(和DNS污染好像)
Netcat
TCP/IP協(xié)議棧瑞士軍刀,可以用來支持端口掃描、隧道、代理、端口轉(zhuǎn)發(fā)等的對內(nèi)對外連接上;監(jiān)聽模式下充當服務器,連接模式下作為客戶端
Wireshark
通吃幾乎所有數(shù)據(jù)包
INetSim
提供模擬服務,基于linux,它努力偽裝為一臺真正的服務器,如果被掃描到,他會返回IIS網(wǎng)絡服務器的標志(和蜜罐技術(shù)好像)