Dwarf:基于PyQt5和frida的强大全功能arch/os逆向工程调试器
- 发表于
- 安全工具
Dwarf介绍
Dwarf是一个逆向工程调试器,建立在各种框架和逻辑之上。一开始,它只是一个实验,主要在Android上运行而设计的,但随着发展,由于它们共享同一个核心,因此可以轻松添加对iOS的支持。如今,主要得益于社区的努力以及开源是道路(当然还有frida的力量),Dwarf可以在任何操作系统上调试逆向工程(感谢PyQt的)。类似的还有有radare2等。
功能
- Android应用程序存储和反编译
- 与用户界面交换数据的API
- 回溯
- 断点solib初始化(android)
- 社区中准备在运行时注入的脚本集合
- 用汇编补丁程序分解视图
- 带步骤的仿真器,动态映射范围从目标和第一个操作数突出显示
- 导出、导入、符号、范围
- 用通配符查找符号和字节
- HAX0R用户界面
- 带字节/字符串修补程序、指针跳转、快速断点等的十六进制视图。
- 带frida更新程序和远程启动/停止的应用内更新程序
- JVM资源管理器/ Java端调试(Android)
- 接受frida和dwarf API的javascript代码注入器
- 接受frida和dwarf API的javascript控制台
- 内核支持(DWARF LKM)
- 单个断点逻辑和条件
- 内存转储和检查器
- 用于读写访问的内存观察程序
- python控制台
- 具有递归值的寄存器
- 单线程断点
- 单线程Java断点(Android)
- 单线程跟踪
- 在多个线程之间切换
- 更多
- 所有这些都可以通过脚本来完成,以构建自定义调试逻辑
Dwarf安装
依赖
全局frida服务
ANDROID会话
- 确保您可以在控制台中使用'
adb
'命令或在此处阅读 - 设备/模拟器上的
root
是必需的! - 确保frida在/system/bin中xbin具有+ x权限或最终使用Dwarf自动安装最新的frida服务器
下载并运行
1 2 3 4 |
git clone https://github.com/iGio90/Dwarf cd Dwarf pip3 install -r requirements.txt python3 dwarf.py |
可选
您可以安装keystone-engine来启用汇编程序:
1 2 3 4 5 6 7 |
Windows x86: https://github.com/keystone-engine/keystone/releases/download/0.9.1/keystone-0.9.1-python-win32.msi x64: https://github.com/keystone-engine/keystone/releases/download/0.9.1/keystone-0.9.1-python-win64.msi OSX / Unix pip3 install keystone-engine |
dex2jar工具(baksmali /反编译所需)
1 2 3 4 5 6 7 |
Guide: https://sourceforge.net/p/dex2jar/wiki/UserGuide/ Files: https://github.com/pxb1988/dex2jar/releases On Windows add d2j folder to %PATH% and change: 'java -Xms512m -Xmx1024m -cp "%CP%" %*' in d2j_invoke.bat to 'java -Xms512m -Xmx4096m -cp "%CP%" %*' |
设置
你可以改变.dwarf
1 2 3 |
"dwarf_ui_hexedit_bpl": 32 (default: 16) - Bytes per line in hexview "dwarf_ui_hexstyle": "upper", "lower" (default: "upper") - overall hexstyle 0xabcdef or 0xABCDEF (note: click on the "Offset (X)" in hexview to change) "dwarf_ui_font_size": 12 (default: 12) - (note: hexview/disasm use other font wait for settingsdlg or change lib/utils.py get_os_monospace_font()) |
原文连接:Dwarf:基于PyQt5和frida的强大全功能arch/os逆向工程调试器
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。