Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Models

📄 arXiv: 2312.09601v1 📥 PDF

作者: Xin Jin, Jonathan Larson, Weiwei Yang, Zhiqiang Lin

分类: cs.CR, cs.CL, cs.LG, cs.SE

发布日期: 2023-12-15


💡 一句话要点

BinSum:评估ChatGPT/GPT-4等大型语言模型在二进制代码摘要任务中的性能

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 二进制代码摘要 大型语言模型 代码理解 提示工程 语义相似性

📋 核心要点

  1. 二进制代码摘要任务耗时费力,现有方法难以有效理解代码语义,阻碍了自动化代码分析和安全研究。
  2. 论文提出BinSum基准测试数据集,并设计提示合成与优化方法,提升LLM在二进制代码摘要任务中的性能。
  3. 通过大量实验,评估了ChatGPT、GPT-4等LLM在BinSum上的表现,并提出了新的语义相似性度量标准。

📝 摘要(中文)

二进制代码摘要对于理解代码语义至关重要,但其劳动密集型特性使其充满挑战。本研究深入探讨了大型语言模型(LLM)在二进制代码理解方面的潜力。为此,我们提出了BinSum,一个包含超过55.7万个二进制函数的大型基准测试和数据集,并引入了一种用于提示合成和优化的新方法。为了更准确地评估LLM的性能,我们还提出了一种新的语义相似性度量标准,超越了传统的精确匹配方法。我们对包括ChatGPT、GPT-4、Llama 2和Code Llama在内的著名LLM进行了广泛的评估,揭示了10个关键见解。本次评估产生了40亿个推理token,总费用为11418美元,消耗了873个NVIDIA A100 GPU小时。我们的研究结果突出了LLM在该领域的变革潜力以及尚未克服的挑战。

🔬 方法详解

问题定义:二进制代码摘要旨在从机器码中提取高级语义信息,帮助安全研究人员和逆向工程师理解程序的功能。现有方法,如基于规则的方法和传统的机器学习方法,难以处理二进制代码的复杂性和多样性,且泛化能力有限。此外,缺乏大规模高质量的二进制代码摘要数据集也限制了相关研究的进展。

核心思路:利用大型语言模型(LLM)强大的代码理解和生成能力,直接从二进制代码生成摘要。通过精心设计的提示(prompt)工程,引导LLM理解二进制代码的结构和语义,并生成自然语言描述。同时,构建大规模数据集BinSum,为LLM的训练和评估提供数据支撑。

技术框架:整体框架包括数据收集与处理、提示合成与优化、LLM推理和性能评估四个主要阶段。首先,收集大量的二进制函数及其对应的摘要,构建BinSum数据集。然后,设计一种新的提示合成方法,自动生成有效的提示,并利用优化算法选择最佳提示。接着,使用LLM对二进制代码进行摘要生成。最后,提出一种新的语义相似性度量标准,更准确地评估LLM生成的摘要的质量。

关键创新:主要创新点在于:1) 构建了大规模的二进制代码摘要数据集BinSum;2) 提出了一种新的提示合成与优化方法,能够自动生成有效的提示;3) 提出了一种新的语义相似性度量标准,能够更准确地评估LLM生成的摘要的质量。

关键设计:提示合成方法包括多个步骤,例如,从二进制代码中提取关键信息,并将其转换为自然语言描述。提示优化算法使用强化学习方法,根据LLM生成的摘要的质量,调整提示的参数。语义相似性度量标准结合了词嵌入和句法分析,能够更准确地捕捉摘要的语义信息。

📊 实验亮点

论文构建了包含超过55.7万个二进制函数的BinSum数据集,并评估了ChatGPT、GPT-4、Llama 2和Code Llama等LLM的性能。实验结果表明,GPT-4在二进制代码摘要任务中表现最佳,但仍存在改进空间。此外,论文提出的语义相似性度量标准能够更准确地评估LLM生成的摘要的质量,优于传统的精确匹配方法。

🎯 应用场景

该研究成果可应用于软件安全分析、恶意代码检测、漏洞挖掘和逆向工程等领域。通过自动生成二进制代码摘要,可以帮助安全研究人员快速理解代码的功能,提高分析效率,并降低人工分析的成本。此外,该技术还可以用于自动化代码文档生成,提高软件的可维护性和可理解性。

📄 摘要(原文)

Binary code summarization, while invaluable for understanding code semantics, is challenging due to its labor-intensive nature. This study delves into the potential of large language models (LLMs) for binary code comprehension. To this end, we present BinSum, a comprehensive benchmark and dataset of over 557K binary functions and introduce a novel method for prompt synthesis and optimization. To more accurately gauge LLM performance, we also propose a new semantic similarity metric that surpasses traditional exact-match approaches. Our extensive evaluation of prominent LLMs, including ChatGPT, GPT-4, Llama 2, and Code Llama, reveals 10 pivotal insights. This evaluation generates 4 billion inference tokens, incurred a total expense of 11,418 US dollars and 873 NVIDIA A100 GPU hours. Our findings highlight both the transformative potential of LLMs in this field and the challenges yet to be overcome.