工具

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 中的声明允许选用任何更新版本)。本次未反编译任何二进制。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · fkie-cad/dewolf · 修订 3c389e1
  2. README.md#L25-L72 GitHub · fkie-cad/dewolf · 修订 3c389e1
  3. README.md#L106-L126 GitHub · fkie-cad/dewolf · 修订 3c389e1
  4. plugin.json GitHub · fkie-cad/dewolf · 修订 3c389e1
  5. requirements.txt GitHub · fkie-cad/dewolf · 修订 3c389e1
  6. decompiler/pipeline GitHub · fkie-cad/dewolf · 修订 3c389e1
  7. Makefile GitHub · fkie-cad/dewolf · 修订 3c389e1
  8. .github/workflows/pipeline.yml GitHub · fkie-cad/dewolf · 修订 3c389e1
  9. LICENSE GitHub · fkie-cad/dewolf · 修订 3c389e1
  10. https://github.com/fkie-cad/dewolf/releases/tag/v2026.7.11