Dwarf本质上是一款调试器,这个项目起初知识想使用PyQt来给Frida增加一个有好的UI界面,并且主要用于Android端。但是通过开发人员的努力之后,该工具已经支持iOS端了。目前,得益于整个社区的共同努力,该工具已完全开源,并且支持对任何类型的操作系统进行分析,并运行在任意桌面端操作系统。
功能介绍
多系统多平台支持
Dwarf基于PyQt5实现,可以直接在任何支持Python的操作系统上运行,并且使用了Frida作为后端,功能得到了稳定保证。
动态分析
允许执行动态指令,我们的Frida代理会在目标系统中加载,并允许我们设置断点。除此之外,它还可以终端模块构造器来帮助我们构造初始化函数。而且跟踪器、寄存器和其他功能模块可以帮助我们降低逆向分析的调试难度。
静态分析
我们构建了多种功能插件来扩展Dwarf的功能,它们可以帮助我们快速完成后端模块分析以及模拟。而且还提供了一套工具集和两个控制台接口来接收JavaScript以及Python脚本。
自动化
很多研究人员在调试和分析的过程中,都会想要让很多任务完成得快一点,尤其是那些重复性工作,Dwarf就可以帮助大家加速这个过程。
可以生成大量命令行参数并将它们注入到目标代理中,例如:
python3 dwarf.py -t android -sp -p com.android.target -s myagent.js
提供了JavaScript API来添加钩子和断点。
提供了API来控制目标程序。
可扩展
Dwarf内置的插件系统允许我们注入PyQt小工具,并通过多个Dwarf代码Python API来与目标设备进行交互。插件还允许我们注入自定义Frida代理来扩展或创建新的JavaScript API。