Decompile-Bench:面向真实世界二进制反编译的百万级二进制-源代码函数对

Papers with Code Trending 论文

摘要

Decompile-Bench 是一个大规模开源数据集,提供两百万个二进制-源代码函数对,用于改进基于 LLM 的二进制反编译,并附带一个用于评估的基准(Decompile-Bench-Eval)。使用它进行微调,在可重新执行性方面比之前的基准提升了 20%。

基于 LLM 的反编译器在将低级二进制转换为人类可读源代码方面已展现出有效性。然而,目前仍然缺乏一个提供大规模二进制-源代码函数对的综合基准,而这对于推进 LLM 反编译技术至关重要。由于复杂的编译设置和普遍存在的函数内联,创建准确的二进制-源代码映射会遇到严重问题,这些问题会掩盖二进制文件与其原始源代码之间的对应关系。之前的努力要么依赖于使用竞赛式基准,要么依赖于与现实世界映射差异显著的综合二进制-源代码映射,要么是仅包含代码行或变量名的部分匹配二进制,从而影响了分析二进制功能的有效性。为了缓解这些问题,我们引入了 Decompile-Bench,这是第一个开源数据集,包含从 1 亿个收集的函数对中浓缩而来的 200 万个二进制-源代码函数对,即从宽松许可的 GitHub 项目中编译出的 450GB 二进制文件。出于评估目的,我们还开发了一个基准 Decompile-Bench-Eval,其中包含来自成熟 HumanEval 和 MBPP 的人工制作二进制文件,以及 2025 年之后发布的编译 GitHub 仓库,以缓解数据泄漏问题。我们进一步探索了常用的评估指标,以对所研究的 LLM 反编译器进行全面评估,并发现使用 Decompile-Bench 进行微调在可重新执行率方面比之前的基准提升了 20%。我们的代码和数据已发布在 HuggingFace 和 Github 上。https://github.com/albertan017/LLM4Decompile
查看原文
查看缓存全文

缓存时间: 2026/08/04 07:32

论文页面 - Decompile-Bench:用于真实世界二进制反编译的百万级二进制-源码函数对

来源:https://huggingface.co/papers/2505.12668 发布于 2025 年 5 月 19 日

摘要

Decompile-Bench 是一个大规模开源数据集,通过提供两百万个二进制-源码函数对和一个评估基准,提高了 LLM 反编译的准确性。近期,基于 LLM 的反编译器(https://huggingface.co/papers?q=LLM-based%20decompilers)已被证明能有效地将底层二进制文件转换为人类可读的源代码。然而,目前仍缺乏一个提供大规模二进制-源码函数对的综合基准,而这对于推进 LLM 反编译技术至关重要。创建准确的二进制-源码映射会引发严重问题,原因在于复杂的编译设置(https://huggingface.co/papers?q=compilation%20settings)和普遍存在的函数内联(https://huggingface.co/papers?q=function%20inlining)会模糊二进制文件与其原始源代码之间的对应关系。以往的工作要么依赖于所使用的竞赛式基准,要么依赖于与现实世界映射差异显著的合成二进制-源码映射,要么仅通过代码行或变量名部分匹配二进制文件,这些都削弱了分析二进制功能的有效性。为缓解这些问题,我们引入了 Decompile-Bench(https://huggingface.co/papers?q=Decompile-Bench),这是首个开源数据集,包含从 1 亿个收集的函数对中提炼出的两百万个二进制-源码函数对(https://huggingface.co/papers?q=binary-source%20function%20pairs),即 450GB 的二进制文件,这些文件编译自已采用宽松许可证的 GitHub 项目。出于评估目的,我们还开发了一个基准 Decompile-Bench-Eval(https://huggingface.co/papers?q=Decompile-Bench-Eval),其中包含来自成熟基准 HumanEval(https://huggingface.co/papers?q=HumanEval)和 MBPP(https://huggingface.co/papers?q=MBPP)的手工构造二进制文件,以及 2025 年之后发布的编译 GitHub 仓库,以缓解数据泄漏问题。我们进一步探索了常用的评估指标,以对所研究的 LLM 反编译器进行全面评估,并发现使用 Decompile-Bench(https://huggingface.co/papers?q=Decompile-Bench)进行微调,在可重新执行率(https://huggingface.co/papers?q=re-executability%20rate)方面比之前的基准提高了 20%。我们的代码和数据已发布在 HuggingFace 和 Github 上。https://github.com/albertan017/LLM4Decompile

查看 arXiv 页面 (https://arxiv.org/abs/2505.12668) 查看 PDF (https://arxiv.org/pdf/2505.12668) GitHub 6.89k (https://github.com/albertan017/LLM4Decompile) 添加到收藏 (https://huggingface.co/login?next=%2Fpapers%2F2505.12668)

在你的 Agent 中获取此论文:

hf papers read 2505\.12668

还没有最新的 CLI?curl \-LsSf https://hf\.co/cli/install\.sh \| bash

引用本论文的模型 0

尚无模型链接本论文。

在模型 README.md 中引用 arxiv.org/abs/2505.12668,即可从此页面链接该模型。

引用本论文的数据集 0

尚无数据集链接本论文。

在数据集 README.md 中引用 arxiv.org/abs/2505.12668,即可从此页面链接该数据集。

引用本论文的 Spaces 0

尚无 Space 链接本论文。

在 Space README.md 中引用 arxiv.org/abs/2505.12668,即可从此页面链接该 Space。

包含本论文的收藏集 0

尚无收藏集包含本论文。

将此论文添加到收藏集(https://huggingface.co/new-collection)即可从此页面链接它。

相似文章

ProgramBench(5分钟阅读)

TLDR AI

ProgramBench 是一项全新的基准测试,用于评估 AI 智能体在无法获取源代码或反编译工具的情况下,仅凭编译后的二进制文件和文档重建完整软件项目的能力。

当 LLM 反编译器重编译得更多、保留得更少

Lobsters Hottest

论文指出 LLM 反编译器以可重编译性和重执行性作为主要指标时会产生误导:代码虽然能通过所有自带测试,却可能在其他合法输入上行为发散,甚至使已披露的漏洞悄然消失。作者提出 Decompile-Diverge 行为比较预言机,通过合成驱动程序和模糊测试语料检测行为差异,发现部分系统发散率高达 13%。