工具
Dwarf 基于 Frida 的多平台调试器
基于 Frida 构建的 PyQt5 调试器,可附加或启动 Android、iOS 设备、本机或远程 Frida 服务器上的进程。调试会话提供断点、观察点、寄存器上下文、调用栈和线程视图,支持 x86、x64、ARM 与 ARM64 的 Capstone 反汇编视图、十六进制编辑器,以及模块、内存区域和内存搜索面板;Java 浏览、检查与跟踪面板和 Objective-C 检查器则面向移动应用运行时。用户编写的 Frida 脚本和 Python 插件可扩展会话,配套命令可跟踪 Java 方法或原生地址(dwarf-trace)、在 arm64 上记录单个模块发起的系统调用(dwarf-strace),并生成带 Dwarf API 类型声明的脚本项目(dwarf-creator)。
使用条件与局限
- 审阅时的最新版本为 PyPI 上的 dwarf-debugger 1.1.3,于 2022-04-09 上传;仓库没有 GitHub 发布版本或标签。所审阅的 master 提交日期为 2024-05-16,也是审阅时的最新提交,它在该版本之后合并了一处小的类型修正。README 仍称正在开发 Dwarf 2.0,但至今没有发布。
- 通过 pip 从 PyPI 或 master 分支压缩包安装。setup.py 接受任意 Python 3 版本,声明支持 Linux、Windows 和 macOS,依赖 frida 12.8+、PyQt5 5.11.3+(requirements.txt 固定为 5.13.*)、Capstone 4.0.1+、requests 和 pyperclip。随附的 core.js 代理由独立的 DwarfCore 仓库的 core1 分支构建;所审来源未说明它能与哪些当前的 Frida 版本配合使用。
- 要调试的应用、进程和设备由使用者自备;仓库只包含 Dwarf 自身的代码、代理、图标和示例。Android 会话依赖 adb 和运行 frida-server 的设备:设备栏可从 Frida 的 GitHub 发布页下载最新的 frida-server,并在已 root 的设备上通过 su 安装,对未检测到 root 权限的设备则加以标注。iOS 会话使用通过 USB 连接的 Frida 设备,本机会话可启动指定路径的程序或附加到 PID,远程会话使用 Frida 的远程设备。
- 采用 GPL-3.0 许可(setup.py 标注为 GPLv3+)。README 列出 JavaTraceView 的两个已知显示问题,dwarf-strace 只支持 arm64 进程。README 称该工具面向逆向工程师、破解者和安全分析人员;本条目只涉及用于分析的调试和跟踪。本次未安装或运行任何内容,所审来源也未确立与 REA 的关联。
关于此条目
- 类型
- 工具
- 类别
- 调试与动态分析
- 关联
- 基础工具
- 目标
- 应用 · 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · iGio90/Dwarf · 修订 fd859ae
- setup.py GitHub · iGio90/Dwarf · 修订 fd859ae
- requirements.txt GitHub · iGio90/Dwarf · 修订 fd859ae
- dwarf_debugger/dwarf.py GitHub · iGio90/Dwarf · 修订 fd859ae
- dwarf_debugger/ui/app.py GitHub · iGio90/Dwarf · 修订 fd859ae
- dwarf_debugger/ui/widgets/device_bar.py GitHub · iGio90/Dwarf · 修订 fd859ae
- dwarf_debugger/lib/disassembler.py GitHub · iGio90/Dwarf · 修订 fd859ae
- dwarf_debugger/strace.py GitHub · iGio90/Dwarf · 修订 fd859ae
- PLUGINS.md GitHub · iGio90/Dwarf · 修订 fd859ae
- LICENSE GitHub · iGio90/Dwarf · 修订 fd859ae
- https://pypi.org/project/dwarf-debugger/1.1.3/