首页
社区
课程
招聘
[转帖]<转>DECAF 动态程序分析平台
发表于: 2014-1-10 11:57 5600

[转帖]<转>DECAF 动态程序分析平台

2014-1-10 11:57
5600
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的功能。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 382
活跃值: (362)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
2
我很好奇他是怎么读pageout的内存的.如果没有内置程序
2014-1-13 10:33
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
read mem应该是通过qemu本身的softmmu去实现的,即使是pageout的内存,当被读时,会被重新读入。
2014-1-20 11:03
0
游客
登录 | 注册 方可回帖
返回
//