-
-
[转帖]<转>DECAF 动态程序分析平台
-
发表于:
2014-1-10 11:57
5589
-
http://blog.sina.com.cn/s/blog_7847a1bf0101wrqi.html
DECAF(http://code.google.com/p/decaf-platform/) 是一个基于虚拟化技术(QEMU)的动态二进制分析平台。其前身为BitBlaze的子模块TEMU。与TEMU相比,DECAF 具有以下优点:
DECAF 框架图
1. 基于QEMU 1.0版本,所以DECAF可以支持32 bit Win7平台软件的分析。
2. DECAF支持bit-wise的 tainting。 整个tainting的逻辑建立在TCG IR层次上,所以很容易扩展到其它平台。目前DECAF支持 ARM/X86。
3. Event-Driven的编程接口。 DECAF提供了丰富的程序接口供用户定制分析插件。利用DECAF提供的接口,用户可以轻松的Hook特定的函数,获得特定进程的指令流,Taint 键盘/网络输入,检测overflow攻击等等。
4. 新的VMI的支持。TEMU需要在guest os里运行一个驱动程序,将进程/函数等信息传给TEMU平台,从而实现VMI,消除语义断层。DECAF不需要guest driver就可以实现VMI。因而用来分析恶意软件更加可靠。目前DECAF的VMI技术支持 linux(arm/x86)/windows xp/win7。
5. DECAF的overhead很小。可以用来分析各种大型软件,包括IE/Firefox/Chrome/Office/等。
6. DECAF 提供了相对完善的文档。用户可以很容易上手开发插件。同时DECAF还提供了一些开源插件,例如,Keylogger 可以用来检测软件中的loging key行为; apitracer可以用来Hook指定的api,提供了类似于Process Monitor的功能。 用户可以很容易的用这些软件来分析恶意样本或拓展新的功能。
接下来是一个DECAF的使用实例,如何Hook一个函数。
hookapi_hook_function_byname(
"ntdll.dll", "NtCreateFile", 1, target_cr3, NtCreateFile_call, NULL, 0);
只需要在插件中调用此函数,就可以Hook到NtCreateFile,然后在它的Handler NtCreateFile_call里读取参数信息进行分析。 由于这个Hook是实现在虚拟机外部,所以它不可能被恶意软件绕过。相比起写驱动hook这些函数,用DECAF实现hook功能更加容易和可靠。借助DECAF 开源的apitracer插件,用户可以轻松的实现类似ProcessMonitor的功能。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课