工具
decomp2dbg 反编译器-调试器符号同步工具
连通反编译器与调试器的桥接工具:通过 XML-RPC 连接,把 IDA Pro、Binary Ninja、Ghidra 或 angr-management 中的函数名、全局变量、栈变量与寄存器变量名以及反编译代码提供给 GDB。同步过来的函数和全局变量成为普通的 GDB 符号,可直接下断点和查看内存;局部变量以便利变量的形式出现,每次在断点处停下时还会打印当前地址对应的反编译代码行。它支持原生 GDB、GEF 和 pwndbg;提供共享库的加载地址范围后,也能为该库映射符号。
使用条件与局限
- 审阅时的最新版本为 v4.0.3,于 2026-07-14 在 GitHub 和 PyPI 发布;所审阅的 main 分支提交即为该版本号更新。包元数据要求 Python 3.10+;README 指出 decomp2dbg 必须安装在反编译器和调试器所用的同一 Python 环境中。自带的安装程序会放置反编译器插件,并在用户的 .gdbinit 中加载 GDB 客户端,加载位置须在 GEF 或 pwndbg 之后;若反编译器运行在 WSL 之外的 Windows 上,需要按 README 的手动步骤安装。
- README 列出 IDA Pro 9.0+、Binary Ninja 2.4+、Ghidra 12+(须以 PyGhidra 模式启动并启用插件)和 angr-management 9.0+,均需另行安装;对反编译器的访问通过 declib 库实现。目前只支持基于 GDB 的调试器:LLDB 和 WinDbg 支持、结构体同步、函数类型同步以及在线生成 DWARF 都列为尚未完成。
- 反编译器一侧默认在 localhost:3662 启动 XML-RPC 服务;若在另一台机器或虚拟机上调试,需要在连接时指定主机和端口,并确保该端口可达。同一时间只能连接一个反编译器;共享库的符号需要手动提供其起始和结束地址。
- tests.py 中的集成测试用 GDB 配合无界面运行的 Ghidra,或通过 idalib 运行的 IDA;CI 只针对 Ghidra 12.0 运行 Ghidra 测试套件。testing/binaries 目录保存了若干示例可执行文件作为测试夹具,其中包括一个 Ubuntu 的 objdump 构建。采用 BSD-2-Clause 许可。本次未运行任何调试会话。
关于此条目
- 类型
- 工具
- 类别
- 调试与动态分析
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · mahaloz/decomp2dbg · 修订 416dce4
- README.md#L20-L46 GitHub · mahaloz/decomp2dbg · 修订 416dce4
- README.md#L147-L168 GitHub · mahaloz/decomp2dbg · 修订 416dce4
- pyproject.toml GitHub · mahaloz/decomp2dbg · 修订 416dce4
- LICENSE GitHub · mahaloz/decomp2dbg · 修订 416dce4
- tests.py GitHub · mahaloz/decomp2dbg · 修订 416dce4
- .github/workflows/ci-tests.yml GitHub · mahaloz/decomp2dbg · 修订 416dce4
- testing/binaries GitHub · mahaloz/decomp2dbg · 修订 416dce4
- https://github.com/mahaloz/decomp2dbg/releases/tag/v4.0.3
- https://pypi.org/project/decomp2dbg/4.0.3/