工具
dewolf 研究型反编译器
由 Fraunhofer FKIE 与新加坡 DSO 国家实验室在 2019 至 2021 年合作研发的研究型反编译器,以 Binary Ninja 插件形式运行,并以 Binary Ninja 的中级中间语言(Medium Level IL)为起点。它通过预处理、SSA、数据流和控制流等阶段组成的流水线,按照 DREAM/DREAM++ 方法重建控制结构,输出类 C 代码。结果可在 Binary Ninja 的停靠窗口中查看,也可在批量场景下用 decompile.py 对整个二进制或指定函数进行反编译,并输出到终端或文件。
使用条件与局限
- 审阅时的最新版本为 v2026.7.11,由项目的自动发布工作流于 2026-07-11 发布;所审阅的 main 分支提交即为该版本,plugin.json 声明的版本与之一致,并列出 Windows、Linux 和 macOS 平台。
- 需要 Python 3.10+、另行授权的 Binary Ninja(README 要求最新稳定版且不低于 3.4;plugin.json 规定最低构建号为 4271),并将其 Python API 安装到同一环境中,还需要用于代码缩进的 astyle;libgraph-easy-perl 仅在输出 ASCII 图时需要。安装方式是将仓库克隆到 Binary Ninja 的插件目录并安装 requirements.txt,其中会从 Git 拉取项目自己的 dewolf-logic 和 dewolf-idioms 包。
- 在 Binary Ninja 图形界面中所做的设置对 decompile.py 无效,命令行运行时改为读取插件目录中的 config.json;decompiler/util/default.json 列出了全部选项。
- README 称 dewolf 是研究原型,并未针对生产使用充分优化,在真实二进制上可能出现错误甚至反编译失败。测试会编译 C 示例源码,并在 tests/coreutils/binaries 中保留 GNU coreutils 可执行文件作为测试夹具;CI 使用仓库密钥提供的 Binary Ninja 安装包和许可证构建 Docker 镜像。
- 采用 LGPL-2.1 许可(plugin.json 中的声明允许选用任何更新版本)。本次未反编译任何二进制。
关于此条目
- 类型
- 工具
- 类别
- 原生分析工具
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · fkie-cad/dewolf · 修订 3c389e1
- README.md#L25-L72 GitHub · fkie-cad/dewolf · 修订 3c389e1
- README.md#L106-L126 GitHub · fkie-cad/dewolf · 修订 3c389e1
- plugin.json GitHub · fkie-cad/dewolf · 修订 3c389e1
- requirements.txt GitHub · fkie-cad/dewolf · 修订 3c389e1
- decompiler/pipeline GitHub · fkie-cad/dewolf · 修订 3c389e1
- Makefile GitHub · fkie-cad/dewolf · 修订 3c389e1
- .github/workflows/pipeline.yml GitHub · fkie-cad/dewolf · 修订 3c389e1
- LICENSE GitHub · fkie-cad/dewolf · 修订 3c389e1
- https://github.com/fkie-cad/dewolf/releases/tag/v2026.7.11