Tool
BTD (Bin To DNN)
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.
- Targets
- Binary
- Category
- Native analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- 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. No executables, traces or models were downloaded or run for this entry.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Related entries
Matched by the same code repository or publication identifier.
- Decompiling x86 Deep Neural Network Executables Research paper
Primary sources
- README.md GitHub · monkbai/DNN-decompiler · Revision 33227a0
- LICENSE GitHub · monkbai/DNN-decompiler · Revision 33227a0
- COPYING GitHub · monkbai/DNN-decompiler · Revision 33227a0
- operator_inference/README.md GitHub · monkbai/DNN-decompiler · Revision 33227a0
- evaluation GitHub · monkbai/DNN-decompiler · Revision 33227a0
- se_engine.py GitHub · monkbai/DNN-decompiler · Revision 33227a0
- trace_filter.py GitHub · monkbai/DNN-decompiler · Revision 33227a0
- https://www.usenix.org/conference/usenixsecurity23/presentation/liu-zhibo
- https://arxiv.org/abs/2210.01075
- https://doi.org/10.5281/zenodo.7219867
More in Native binaries
- Boomerang Decompiler · Tool
- ktool · Tool
- Brida · Tool
- Qu1cksc0pe · Tool
- AppMon · Tool
- Yagi · Tool