{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/LICENSE",
    "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/COPYING",
    "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/operator_inference/README.md",
    "https://github.com/monkbai/DNN-decompiler/tree/33227a0b34f87c490efc734d667ac56530f5074a/evaluation",
    "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/se_engine.py",
    "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/trace_filter.py",
    "https://www.usenix.org/conference/usenixsecurity23/presentation/liu-zhibo",
    "https://arxiv.org/abs/2210.01075",
    "https://doi.org/10.5281/zenodo.7219867"
  ],
  "category": "native-analysis",
  "description_en": "Research artifact for the USENIX Security 2023 paper “Decompiling x86 Deep Neural Network Executables”. BTD decompiles x86 executables emitted by the DNN compilers TVM, Glow and NNFusion into model specifications: operator types, network topology, dimensions and parameters such as weights and biases. It splits IDA disassembly into functions, infers each operator's type with a trained classifier over assembly tokens, records Intel Pin traces filtered by taint analysis, recovers dimensions and parameters with a trace-based symbolic execution engine, then rebuilds the model in PyTorch and compares its output with the original executable.",
  "description_zh": "USENIX Security 2023 论文《Decompiling x86 Deep Neural Network Executables》的研究产物。BTD 将 DNN 编译器 TVM、Glow 和 NNFusion 生成的 x86 可执行文件反编译为模型规格：算子类型、网络拓扑、维度以及权重和偏置等参数。它把 IDA 的反汇编结果拆分为函数，用基于汇编词元训练的分类器推断每个算子的类型，用 Intel Pin 记录执行轨迹并经污点分析过滤，借助基于轨迹的符号执行引擎恢复维度和参数，最后在 PyTorch 中重建模型，并将其输出与原可执行文件对比。",
  "entry_url": "https://awesomerea.org/resources/btd-dnn-decompiler/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/btd-dnn-decompiler/",
  "evidence_url": "https://github.com/monkbai/DNN-decompiler/blob/33227a0b34f87c490efc734d667ac56530f5074a/README.md",
  "group": "tools",
  "id": "btd-dnn-decompiler",
  "json_url": "https://awesomerea.org/resources/btd-dnn-decompiler/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/btd-dnn-decompiler/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/btd-dnn-decompiler/index.md",
  "name": "BTD (Bin To DNN)",
  "name_zh": "BTD（Bin To DNN）DNN 可执行文件反编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Research artifact with no tagged releases; the reviewed master commit (2026-03-13) fixes README typos. The paper appears in the USENIX Security 2023 proceedings, arXiv 2210.01075 is the authors' 25-page extended version, and the README reports Available, Functional and Reproduced artifact-evaluation badges.",
    "README prerequisites: Ubuntu 18.04, gcc/g++ 7.5, Python 3.6.9+ with numpy 1.19.5, torch 1.9+, torchvision 0.11.2, fastBPE and tqdm, Intel Pin 3.14, and IDA Pro 7.5 for disassembly. IDA is commercial and not included, so precomputed disassembly is supplied; the authors recommend their Docker image. Their server had 256 GB RAM, and logging and filtering traces for every executable took over a week and nearly 1 TB, so filtered traces are shipped and the rest of the evaluation takes about a day and under 120 GB.",
    "Evaluation inputs are downloaded separately from Dropbox or the Zenodo dataset (DOI 10.5281/zenodo.7219867): 63 executables built from 7 ONNX models with Glow 2020–2022 and TVM v0.7–v0.9.dev at O0 and O3, their disassembly and filtered traces, operator-inference training data and checkpoints, and the Docker image. The repository itself commits scripts, Pin tool sources, per-executable JSON metadata and a cat test image stored as input tensors in cat.bin and cat_transpose.bin.",
    "Scope is x86 CPU executables from the evaluated compiler versions; the main evaluation covers TVM and Glow, with NNFusion handled by separate scripts. Per-model decompilation scripts under evaluation/ serve as the interface rather than a general command-line tool.",
    "HKUST Academic Software License (LICENSE, COPYING): academic or nonprofit researchers may use, copy and modify it for educational or academic research only, and publications must include the stated acknowledgment; GitHub reports no SPDX license."
  ],
  "requirements_zh": [
    "研究产物，没有带标签的发布版本；所审阅的 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 许可证。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/monkbai/DNN-decompiler",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
