2009年2月3日 星期二

x86 shellcode detection and emulation - libemu

去年我在研究開發惡意文件偵測技術 - mdscan 時,就在試著找尋適合的 x86 emulator。可惜,找到的幾乎都是 Virtualizer 性質,非我所需要。
一月時無意間發現了 libemu,這兩天就著手將原來 mdscan 的動態追蹤核心,換成 libemu 來模擬執行。

Malicious Document Scan Tool Version 0.5
---------------------------------------------------
Copyright (c) 2009 Net-Hack Technology Co.,Ltd. All rights reserved.

Scanning CVE/MS08-014/69a7b1dd0af391523ae55a846232c68f
opcode: E8E4FFFFFF call 0xffffffe9
opcode: 5E pop esi
opcode: 8BFE mov edi,esi
opcode: 8BD6 mov edx,esi
opcode: 83C214 add edx,0x14
opcode: 52 push edx
opcode: B96A030000 mov ecx,0x36a
opcode: AC lodsb
opcode: C0C000 rol al,0x0
opcode: AA stosb
opcode: 49 dec ecx
opcode: 75F8 jnz 0xfffffffa
opcode: AC lodsb
opcode: C0C000 rol al,0x0
opcode: AA stosb
opcode: 49 dec ecx
opcode: 75F8 jnz 0xfffffffa
opcode: AC lodsb
opcode: C0C000 rol al,0x0
opcode: AA stosb
opcode: 49 dec ecx
opcode: 75F8 jnz 0xfffffffa
opcode: AC lodsb
opcode: C0C000 rol al,0x0
opcode: AA stosb
opcode: 49 dec ecx
opcode: 75F8 jnz 0xfffffffa
opcode: AC lodsb

不過,libemu 缺乏詳細的文件,而且有些 instructions 並沒有 mapping(例如 opcode: A8 and A9),有些 API 也不甚明白是什麼作用,畢竟還在 version 0.2 開發中吧!

想試著研究 shellcode 追蹤或是自動化解殼(unpack)的朋友,不妨試試。

2 則留言:

匿名 提到...

if you need assistance with the library, contact the developers

匿名 提到...

謝謝您的博文。我是初學者,請教libemu是否可以運行於windows平臺?我想在windows平臺下利用libemu監控程序的path或者污點傳播,這樣的思路是否可行?還有什麼其他開源項目可以參考?不勝感激。
email:rxh0094[at]yahoo com