Nova: Generative Language Models for Assembly Code with Hierarchical Attention and Contrastive Learning
作者: Nan Jiang, Chengxiao Wang, Kevin Liu, Xiangzhe Xu, Lin Tan, Xiangyu Zhang, Petr Babkin
分类: cs.SE, cs.AI
发布日期: 2023-11-22 (更新: 2025-11-11)
备注: Published as a conference paper at ICLR 2025
💡 一句话要点
提出Nova以解决汇编代码分析中的信息稀疏问题
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 汇编代码分析 层次注意力机制 对比学习 二进制反编译 安全领域
📋 核心要点
- 现有方法在汇编代码分析中面临信息稀疏和优化多样性等挑战,导致性能不足。
- 本文提出了一种层次注意力机制和对比学习目标,以增强汇编代码的语义捕捉和优化学习。
- Nova在二进制代码反编译任务中相较于现有技术提高了14.84%至21.58%的性能,展现出优越的生成和理解能力。
📝 摘要(中文)
二进制代码分析是安全领域中至关重要的任务,因此构建有效的二进制分析技术变得尤为重要。尽管大型语言模型(LLMs)在源代码任务中取得了显著进展,但由于汇编代码的独特挑战,LLMs并不能直接推广到汇编代码。这些挑战包括汇编代码的信息密度低和多样化的优化。为了解决这些问题,本文提出了一种层次注意力机制,以更有效地捕捉语义,并设计了对比学习目标,以训练LLMs学习汇编优化。基于这些技术,本文开发了Nova,一个用于汇编代码的生成性LLM。Nova在二进制代码反编译任务中相较于现有技术提高了14.84%至21.58%的Pass@1和Pass@10,并在最新的二进制代码相似性检测技术中提高了6.17%的Recall@1,展示了在汇编生成和理解任务中的良好能力。
🔬 方法详解
问题定义:本文旨在解决汇编代码分析中的信息稀疏和多样化优化问题。现有方法在处理汇编代码时,往往无法有效捕捉其语义特征,导致性能不足。
核心思路:论文的核心思路是通过引入层次注意力机制和对比学习目标,来增强模型对汇编代码的理解和生成能力。层次注意力机制能够更好地总结汇编代码的语义,而对比学习则帮助模型学习优化策略。
技术框架:Nova的整体架构包括输入层、层次注意力模块、对比学习模块和输出层。输入层负责接收汇编代码,层次注意力模块用于生成语义摘要,对比学习模块则通过优化目标提升模型的学习效果,最终输出生成的汇编代码。
关键创新:最重要的技术创新点在于引入了层次注意力机制和对比学习目标,这与现有方法的直接编码方式有本质区别。层次注意力机制使得模型能够在不同层次上捕捉信息,而对比学习则提升了模型对汇编优化的理解。
关键设计:在模型设计中,采用了特定的损失函数来优化对比学习目标,并在层次注意力模块中设置了多个注意力头,以增强模型的表达能力。
🖼️ 关键图片
📊 实验亮点
Nova在二进制代码反编译任务中表现出色,相较于现有技术,Pass@1和Pass@10的提升幅度达到14.84%至21.58%,同时在二进制代码相似性检测中提高了6.17%的Recall@1,显示出其在汇编生成和理解任务中的强大能力。
🎯 应用场景
该研究的潜在应用领域包括安全分析、恶意软件检测和代码优化等。通过提高汇编代码的分析能力,Nova可以帮助安全研究人员更有效地识别和理解二进制代码中的潜在威胁,进而提升软件安全性。未来,该技术可能在自动化代码审计和逆向工程等领域发挥重要作用。
📄 摘要(原文)
Binary code analysis is the foundation of crucial tasks in the security domain; thus building effective binary analysis techniques is more important than ever. Large language models (LLMs) although have brought impressive improvement to source code tasks, do not directly generalize to assembly code due to the unique challenges of assembly: (1) the low information density of assembly and (2) the diverse optimizations in assembly code. To overcome these challenges, this work proposes a hierarchical attention mechanism that builds attention summaries to capture the semantics more effectively and designs contrastive learning objectives to train LLMs to learn assembly optimization. Equipped with these techniques, this work develops Nova, a generative LLM for assembly code. Nova outperforms existing techniques on binary code decompilation by up to 14.84 -- 21.58% (absolute percentage point improvement) higher Pass@1 and Pass@10, and outperforms the latest binary code similarity detection techniques by up to 6.17% Recall@1, showing promising abilities on both assembly generation and understanding tasks.