工具

BTD(Bin To DNN)DNN 可执行文件反编译器

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

目标
二进制
类别
原生分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 研究产物,没有带标签的发布版本;所审阅的 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. README.md GitHub · monkbai/DNN-decompiler · 修订 33227a0
  2. LICENSE GitHub · monkbai/DNN-decompiler · 修订 33227a0
  3. COPYING GitHub · monkbai/DNN-decompiler · 修订 33227a0
  4. operator_inference/README.md GitHub · monkbai/DNN-decompiler · 修订 33227a0
  5. evaluation GitHub · monkbai/DNN-decompiler · 修订 33227a0
  6. se_engine.py GitHub · monkbai/DNN-decompiler · 修订 33227a0
  7. trace_filter.py GitHub · monkbai/DNN-decompiler · 修订 33227a0
  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

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

原生二进制分区全部 158 项资源