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

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

2014-1-10 11:57
5735
fcaK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2K6K9h3&6S2i4K6u0W2j5$3!0E0i4K6u0W2j5$3&6Q4x3V1k6K6i4K6u0r3j5X3I4G2k6#2)9#2k6U0M7^5y4o6N6S2x3h3u0X3x3o6p5H3x3i4N6J5M7h3W2Q4x3X3g2Z5N6r3#2D9

DECAF(981K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4G2k6r3g2Q4x3X3g2Y4L8$3!0Y4L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6H3i4K6u0r3k6r3g2U0j5h3k6Q4x3X3c8H3L8r3q4@1k6X3!0J5L8g2)9J5c8W2)9J5z5b7`.`. 是一个基于虚拟化技术(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直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 382
活跃值: (442)
能力值: ( 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
游客
登录 | 注册 方可回帖
返回