惡意代碼分析利器 – scdbg
什么是scdbg
scdbg是一款多平臺開源的Shellcode模擬運行、分析工具。其基于libemulibrary搭建的虛擬環境,通過模擬32位處理器、內存和基本Windows API運行環境來虛擬執行Shellcode以分析其行為。有了虛擬執行媽媽再也不用擔心我的電腦中病毒了。
基本原理
眾所周知,shellcode為了實現特定的功能必須通過調用系統API來完成-不論先前怎怎么變形怎么加密***都會調用系統API。scdbg就是通過模擬執行以及hook多達200多個API來探測shellcode的行為。當然比如創建文件和訪問網絡這些危險的API并沒有真正的在本機執行,而是通過傳回虛假的返回值來欺騙shellcode讓其平穩運行。
示例
直接命令行輸入scdbg.exe example.sc 來看看輸出:
其中example.sc文件就是以二進制形式保存的Shellcode,我們可以看到這段shellcode調用了兩次較關鍵的函數-CreateProcessA,***次調用tftp.exe程序下載winapi32.exe,第二次準備執行之。很典型的下載并執行行為。有了scdbg我們就不必花很多時間在搭建測試環境、解碼shellcode、調試理解各種分枝跳轉、擔心機器是否中招。。。。。。簡單明了。
scdbg和通常的命令行工具一樣,有著眾多參數選項,這里只做最基本的演示,就不一一列舉。想必大家都有在命令行下痛苦的經歷,命令行的歷史就是我等小菜的血淚史,還好scdbg有GUI圖形界面版:
指定偏移,自定參數一目了然。
亮點
A. 跨平臺開源
同時支持unix和windows系統。對有系統潔癖的同學來說可以放心在unix下搭建環境“調戲”shellcode了。
B.文檔類格式漏洞
scdbg能很容易通過交互方式分析諸如pdf,excel,word等文檔類漏洞釋放出來的shellcode。這類漏洞的相同點就是首先肯定會通過調用GetFileSize找到宿主文
件句柄然后進行下一步操作(是這樣的吧:)。感覺這項功能還是有很多應用場景的,命令行如下:
$ ./scdbg -f test.sc -fopen bad.pdf -i
fopen(bad.pdf) = 4d565c
Loaded 312 bytes from file test.sc
Initialization Complete..
Interactive Hooks enabled
401083 GetFileSize(4) = 2031b
401112 GlobalAlloc(sz=2031b) = 60000
401118 SetFilePointer(hFile=4, dist=0, FILE_BEGIN)
401132 ReadFile(hFile=4, buf=60000, numBytes=2031b)
401147 CreateFile(x.exe)
Interactive mode local file: /tmp/WHhUmhtM
401158 WriteFile()
401176 WinExec(x.exe)
其他重要功能
內存監視-簡單調試Shell-ROPshellcode分析-內存dump。。。。。。
資源下載
WIN32
可執行程序: http://sandsprite.com/CodeStuff/scdbg.zip
源代碼:https://github.com/dzzie/VS_LIBEMU
git clone git://github.com/dzzie/VS_LIBEMU.git
*nix/Cygwin Source
源代碼 : https://github.com/dzzie/SCDBG
git clone git://github.com/dzzie/SCDBG.git


























