2023 · 会议论文

反编译 x86 深度神经网络可执行文件

Decompiling x86 Deep Neural Network Executables

BTD(Bin to DNN)将深度学习编译器生成、已剥离符号的 64 位 x86 可执行文件反编译为模型规格:算子类型、网络拓扑、维度与参数。学习得到的分类器把反汇编函数标注为 DNN 算子,Intel Pin 动态分析将算子串联起来,再在经污点分析裁剪的执行轨迹上进行符号执行,借助针对各算子的模式恢复维度与参数布局。作者在 PyTorch 中重建恢复出的模型并重新编译,以便与原可执行文件比较行为。

研究范围与局限

评测仅覆盖由 TVM v0.7、v0.8、v0.9.dev(-O0 与 -O3)、2020–2022 年的三个 Glow 快照以及 NNFusion v0.2/v0.3 生成的 64 位 x86 可执行文件;GPU、加速器及其他架构的可执行文件只作讨论,未被反编译。方法假定反汇编与函数恢复完全正确(论文使用 IDA Pro 7.5),且编译来源已知;维度与参数模式需针对各算子人工设计:需要此类模式的 36 个 ONNX 算子中覆盖了 22 个,不含 QLinearConv 等量化算子。作者报告在来自七个计算机视觉模型和 FastText 的 65 个可执行文件中,有 59 个得到正确规格;一个 TVM -O3 ResNet18 卷积算子的参数布局需借助真实标签人工修正,NNFusion 也只能编译其自带的 VGG11。重新编译后的行为仅在 100 张 ImageNet 图片或 50 条人工构造的 FastText 输入上比较,并未证明对全部输入一致。未评测经过混淆的可执行文件。

与本合集的关联

将反编译从 C/C++ 程序扩展到已编译的机器学习模型,从优化后的本机代码中恢复可重建的高层规格。

发表与复核详情

发表载体
USENIX Security 2023
发表状态
会议论文
出版/提交日期
2023 年 8 月
日期依据
USENIX 论文页面的 BibTeX 将第 32 届 USENIX Security 研讨会论文集的出版时间列为 2023 年 8 月。本条目保留月份精度,不以 8 月 9–11 日的会议日期代替具体出版日;2022 年的 arXiv 日期属于扩展版预印本。
arXiv 首次提交
2022 年 10 月 3 日
arXiv
2210.01075
已复核的 arXiv 版本
v2

USENIX 论文页面的 BibTeX 确认了五位作者的顺序、论文集名称、页码 7357–7374 以及 2023 年 8 月。arXiv v2(2022-10-04;v1 为 2022-10-03)是作者 25 页的扩展版,19 页的正式论文以其补充省略的细节;本条目中的数据以正式论文为准。正式 PDF 采用 usenixsecurity23- 命名,不在已审阅的 USENIX 出版身份规则之内,因此出版身份依靠 arXiv 标识。论文链接的 monkbai/DNN-decompiler 仓库在所审阅的提交 33227a0(2026-03-13)中采用香港科技大学的 Academic Software License,仅允许学术或非营利研究使用,商业用户需联系该机构;GitHub 未识别出 SPDX 许可证。README 列出的前提包括 Ubuntu 18.04、Python 3.6.9+、PyTorch 1.9+、Intel Pin 3.14,以及可选的 IDA Pro 7.5;IDA Pro 为商业软件且未随附,仓库改为提供反汇编结果。作者称完整评测需要单线程记录轨迹超过一周、占用近 1 TB 存储,因此产物通过 Docker 镜像与 Dropbox/Zenodo 压缩包提供过滤后的轨迹。Zenodo 数据集 DOI 10.5281/zenodo.7219867(CC BY 4.0)标识的是产物而非论文。README 中 63 个可执行文件的评测只覆盖 TVM 与 Glow,未包括论文中的两个 NNFusion 构建,并说明产物获得 Available、Functional 与 Reproduced 徽章。本次未下载压缩包、可执行文件或模型,也未运行上游代码或实验。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

报告条目过时 建议修正翻译

一手来源

  1. https://www.usenix.org/conference/usenixsecurity23/presentation/liu-zhibo
  2. https://www.usenix.org/system/files/usenixsecurity23-liu-zhibo.pdf
  3. https://arxiv.org/abs/2210.01075
  4. https://arxiv.org/pdf/2210.01075v2
  5. README.md GitHub · monkbai/DNN-decompiler · 修订 33227a0
  6. LICENSE GitHub · monkbai/DNN-decompiler · 修订 33227a0
  7. COPYING GitHub · monkbai/DNN-decompiler · 修订 33227a0
  8. https://zenodo.org/records/7219867