# BTD（Bin To DNN）DNN 可执行文件反编译器

> USENIX Security 2023 论文《Decompiling x86 Deep Neural Network Executables》的研究产物。BTD 将 DNN 编译器 TVM、Glow 和 NNFusion 生成的 x86 可执行文件反编译为模型规格：算子类型、网络拓扑、维度以及权重和偏置等参数。它把 IDA 的反汇编结果拆分为函数，用基于汇编词元训练的分类器推断每个算子的类型，用 Intel Pin 记录执行轨迹并经污点分析过滤，借助基于轨迹的符号执行引擎恢复维度和参数，最后在 PyTorch 中重建模型，并将其输出与原可执行文件对比。

- 类型：工具
- 目标：二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/monkbai/DNN-decompiler>
- 一手来源：<https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/btd-dnn-decompiler/>
- 记录 JSON：<https://awesomerea.org/resources/btd-dnn-decompiler/record.json>
- 英文版：[English](https://awesomerea.org/resources/btd-dnn-decompiler/index.md)

## 使用条件与局限

- 研究产物，没有带标签的发布版本；所审阅的 master 分支提交（2026-03-13）修正了 README 中的错别字。论文收录于 USENIX Security 2023 论文集，arXiv 2210.01075 是作者 25 页的扩展版本；README 称该产物获得 Available、Functional 和 Reproduced 三项产物评审徽章。
- README 列出的前提：Ubuntu 18.04、gcc/g++ 7.5、Python 3.6.9+（含 numpy 1.19.5、torch 1.9+、torchvision 0.11.2、fastBPE 和 tqdm）、Intel Pin 3.14，以及用于反汇编的 IDA Pro 7.5。IDA 为商业软件且未随附，因此仓库直接提供预先生成的反汇编结果；作者建议使用其 Docker 镜像。作者服务器配有 256 GB 内存，为全部可执行文件记录并过滤轨迹耗时一周以上、占用近 1 TB，因此改为提供过滤后的轨迹，其余评测约需一天、占用不到 120 GB。
- 评测输入需从 Dropbox 或 Zenodo 数据集（DOI 10.5281/zenodo.7219867）另行下载：由 7 个 ONNX 模型经 Glow 2020–2022 与 TVM v0.7–v0.9.dev（O0 和 O3）编译出的 63 个可执行文件、其反汇编结果和过滤后的轨迹、算子推断训练数据与检查点，以及 Docker 镜像。仓库本身只提交脚本、Pin 工具源码、各可执行文件的 JSON 元数据，以及以输入张量形式存于 cat.bin 和 cat_transpose.bin 的一张猫测试图片。
- 适用范围是所评测编译器版本生成的 x86 CPU 可执行文件；主要评测覆盖 TVM 和 Glow，NNFusion 由单独的脚本处理。evaluation/ 下按模型编写的反编译脚本即为使用接口，并没有通用的命令行工具。
- 香港科技大学 Academic Software License（LICENSE、COPYING）：仅允许学术或非营利研究人员为教育或学术研究目的使用、复制和修改，发表成果时须附上指定的致谢；GitHub 未识别出 SPDX 许可证。

## 一手来源

1. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/README.md>
2. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/LICENSE>
3. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/COPYING>
4. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/operator_inference/README.md>
5. <https://github.com/monkbai/DNN-decompiler/tree/33227a0b34f87c490efc734d667ac56530f5074a/evaluation>
6. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/se_engine.py>
7. <https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/trace_filter.py>
8. <https://www.usenix.org/conference/usenixsecurity23/presentation/liu-zhibo>
9. <https://arxiv.org/abs/2210.01075>
10. <https://doi.org/10.5281/zenodo.7219867>

## 相关条目

依据相同的代码仓库或论文标识关联。

- [反编译 x86 深度神经网络可执行文件](https://awesomerea.org/zh/papers/paper-btd/index.md) · 研究论文

## 同分区更多条目：原生二进制

- [Boomerang 机器码反编译器](https://awesomerea.org/zh/resources/boomerang-decompiler/index.md) · 工具
- [ktool Mach-O 与 Objective-C 分析工具包](https://awesomerea.org/zh/resources/ktool/index.md) · 工具
- [Brida Burp Suite 与 Frida 桥接扩展](https://awesomerea.org/zh/resources/brida/index.md) · 工具
- [Qu1cksc0pe 恶意软件分析工具](https://awesomerea.org/zh/resources/qu1cksc0pe/index.md) · 工具
- [AppMon 基于 Frida 的应用 API 监控框架](https://awesomerea.org/zh/resources/appmon/index.md) · 工具
- [Yagi：IDA 中的 Ghidra 反编译器](https://awesomerea.org/zh/resources/yagi-ghidra-decompiler-for-ida/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
