2022 · 会议论文
超越 C:基于神经机器翻译的可重定向反编译
Beyond the C: Retargetable Decompilation using Neural Machine Translation
BTC(Beyond The C)将反编译视为从编译器输出的 x86-64 汇编到源码的纯文本翻译,分别在汇编与源码上训练字节对编码分词器,并使用标准 fairseq Transformer。它借助编译器输出的 CFI 与行号指令配对函数,而非依赖特定语言的解析器、编译器插件或提升器,因此同一流程可针对 Go、Fortran、OCaml 与 C 重新训练。训练集规模从小型 C、Go 与 Fortran 语料的约 10,000 个函数,到基于 Debian 软件包构建的 200 万个 C 函数不等。在大型 C 数据集上训练的最佳模型,在留出函数上的归一化平均编辑距离为 0.46。
研究范围与局限
评测在函数层面覆盖四种语言,仅以与原始源码的归一化编辑距离评分;未报告编译、测试或语义等价检查,也未评估完整程序的反编译。作者指出该方法无法保证语义正确,尚不能用于真实代码:即便最佳分数也意味着大约一半的函数词元需要修改。输入是保留标签与 CFI 指令的编译器生成 x86-64 汇编,因此对去符号二进制的反汇编、其他架构以及不输出此类指令的编译器均不在评测范围内。序列长度限制排除了较长函数,小型语料主要来自编程竞赛题和小型工具代码。与 Katz 等人的比较引用的是该工作在更短代码片段上报告的分数,而非在相同数据上重新运行。
与本合集的关联
补充在 C 之外的 Go、Fortran 与 OCaml 上评测、并采用语言无关数据流程的神经反编译研究,与本节中聚焦 C 语言的神经网络及大语言模型反编译研究互补。
发表与复核详情
- 发表载体
- Workshop on Binary Analysis Research (BAR) 2022
- 发表状态
- 会议论文
- 出版/提交日期
- 2022 年(具体日期未核实)
- 日期依据
- Internet Society 向 Crossref 提交的元数据仅给出出版年份 2022;出版方 PDF 另列研讨会日期为 2022 年 4 月 24 日,本条目不据此推定出版月份或日期。
- arXiv 首次提交
- 2022 年 12 月 17 日
- arXiv
- 2212.08950
- 已复核的 arXiv 版本
- v1
- DOI
- 10.14722/bar.2022.23009
NDSS 论文页面列出 Iman Hosseini 与 Brendan Dolan-Gavitt(纽约大学),并链接 PDF 与演示幻灯片;Crossref 给出相同的两位作者,仅记载年份 2022。PDF 页脚标明 BAR 2022 于 2022 年 4 月 24 日在圣迭戈举行,并载有 ISBN 1-891562-76-2 与 DOI。arXiv v1(2022-12-17)是唯一版本,发布于研讨会之后,并链接 BAR DOI。论文的可用性章节给出存放代码、数据与训练模型的 figshare 链接。该链接为私有分享链接:脚本请求收到 HTTP 202 质询,而浏览器显示一个名为“Beyond the C - data & code”的条目,标注为私有分享、CC BY 4.0、修改于 2022-01-04,含 btc.zip(18.98 GB)与 additional.zip。本次未下载或检查这些压缩包,也未找到论文提及的 VS Code 扩展。本次未运行任何内容。
来源复核于
本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。
一手来源
- https://www.ndss-symposium.org/ndss-paper/auto-draft-298/
- https://www.ndss-symposium.org/wp-content/uploads/bar2022_23009_paper.pdf
- https://doi.org/10.14722/bar.2022.23009
- https://api.crossref.org/works/10.14722/bar.2022.23009
- https://arxiv.org/abs/2212.08950v1
- https://figshare.com/s/2c68b9c181e80f4e3b06