2026 · 会议论文

基于结构感知检索与迭代验证将优化二进制提升为规范编译器 IR

Lifting Optimized Binaries to Canonical Compiler IR via Structure-Aware Retrieval and Iterative Verification

BRIDGE 将以 llvm-objdump 反汇编形式给出的、已剥离符号并经过优化的 x86-64 与 ARM64 函数提升为 LLVM IR,目标是固定 clang -O0 配置为原始源码生成的未优化 IR。离线阶段,它将 69,253 个 ExeBench 函数分别以 -O0 至 -O3 编译并构建检索数据库,借助 LLVM 伪探针插桩将汇编片段与对应的 -O0 IR 区域对齐。推理时,它把 angr 恢复的函数控制流图划分为循环、if–else 等控制流片段,从基于 Nova-1.3B 嵌入的 FAISS 索引中为每个片段检索三个最相近的已对齐汇编—IR 对,再提示托管的通用大语言模型(DeepSeek-chat)生成 IR。随后最多进行五轮修正,把 LLVM 校验器与编译器诊断信息以及单元测试失败结果反馈给模型。在以 Clang 19 按 -O0 至 -O3 编译的 HumanEval-Decompile 与 MBPP 上,其平均可重新执行率在 x86-64 上为 65.2% 和 65.4%,在 ARM64 上为 45.6% 和 42.1%。基于规则的 MCTOLL 在 x86-64 上为 62.1% 和 64.9%,五个直接提示的 API 大语言模型最高为 21.5%。

研究范围与局限

评测在函数级别、针对短小的基准程序进行:HumanEval-Decompile 与 MBPP 子集,输入为 2 至 628 条汇编指令,由作者在 Linux 上使用单一 LLVM/Clang 19 工具链构建。“规范”指与一个固定的 clang -O0 配置输出一致,而非恢复原始源码。修正过程与可重新执行率指标都使用这些基准自带的单元测试;作者指出,实际逆向工程中很少有这类测试预言。在 x86-64 HumanEval-Decompile 上,改用大语言模型生成的测试时可重新执行率从 65.2% 降至 60.8%,不使用测试时降至 53.5%。输出在结构上仍与参考结果存在差异:平均编辑相似度低于 50%,该基准上控制流图完全匹配率为 25.9%。流水线调用托管的大语言模型 API,大语言模型基线同样如此;结果为五次运行的几何平均值,可能随托管模型变化而改变。作者认为 Forklift 与 LLM Compiler FTD 处理的是编译器生成的汇编文本,因此未将其列为基线;MCTOLL 仅在 x86-64 上参与比较。支持其他指令集需要重建检索数据库。BRIDGE 输出的是 LLVM IR 而非 C 源码,因此不是面向 C 的反编译器。代码仓库没有许可证。

与本合集的关联

补充借助检索引导、并以校验器与测试反馈修正的大语言模型方法,将优化后的机器码提升为编译器 IR,与 rev.ng 等基于规则的提升工具及本节中从汇编生成 C 的神经反编译论文互补。

发表与复核详情

发表载体
ACL 2026
发表状态
会议论文
出版/提交日期
2026 年 7 月
日期依据
ACL Anthology 官方引文与 BibTeX 给出 2026 年 7 月。Crossref 仅记录年份;PDF 中印有的 7 月 2–7 日会议日期不作为具体出版日。
DOI
10.18653/v1/2026.acl-long.527

ACL Anthology 页面与 BibTeX 列出第 64 届 ACL 年会论文集(第 1 卷:长文)、第 11498–11516 页、圣迭戈、由 ACL 出版,作者为顺序相同的六人;Crossref DOI 记录的标题、作者与页码一致,但只给出年份。arXiv 标题与关键词检索均未找到该论文,因此 arxiv_id 为 null。§6.1 正文称 ARM64 HumanEval-Decompile 的平均可重新执行率为 42.1%,而表 1 列出该基准为 45.6%、ARM64 MBPP 为 42.1%;本条目以表格为准。PDF 的在线材料说明链接 Azhu-c/BRIDGE-rag。在所审阅的 2026-07-06 提交中,仓库没有 LICENSE 文件,GitHub 也未识别出许可证。README 推荐 Python 3.10 并要求 DeepSeek API 密钥,大语言模型封装代码默认通过 OpenAI 兼容客户端调用 deepseek-chat 模型。requirements.txt 固定 openai 1.57.0、angr 9.2.162、torch 2.5.1 与 faiss-gpu 1.7.2。知识库配置要求在 ./data/exebench_samples 下提供 ExeBench 样本,并指定本地 Nova-1.3b 模型路径;二者都不在仓库中。Evaluation_datasets 包含两种指令集的 HumanEval-Decompile 与 MBPP 子集输入,以及 BRIDGE 和基线的输出;docs/ 中存有论文副本。除论文外未下载任何内容,也未运行代码或实验。

来源复核于

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

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

一手来源

  1. https://aclanthology.org/2026.acl-long.527/
  2. https://aclanthology.org/2026.acl-long.527.bib
  3. https://aclanthology.org/2026.acl-long.527.pdf
  4. https://api.crossref.org/works/10.18653/v1/2026.acl-long.527
  5. https://github.com/Azhu-c/BRIDGE-rag/tree/9add8abe0f15748cfae36395b07c6fc4e4ecc386
  6. README.md GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab
  7. requirements.txt GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab
  8. default.env.example GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab
  9. configs/knowledge_base.yaml GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab
  10. src/llm/llm_api.py GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab
  11. Evaluation_datasets GitHub · Azhu-c/BRIDGE-rag · 修订 9add8ab