HELIOS: Hierarchical Graph Abstraction for Structure-Aware LLM Decompilation

📄 arXiv: 2601.14598v1 📥 PDF

作者: Yonatan Gizachew Achamyeleh, Harsh Thomare, Mohammad Abdullah Al Faruque

分类: cs.SE, cs.AI

发布日期: 2026-01-21


💡 一句话要点

HELIOS:一种用于结构感知LLM反编译的分层图抽象方法

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

关键词: 反编译 大语言模型 控制流图 程序分析 逆向工程

📋 核心要点

  1. 现有基于LLM的反编译方法将代码视为纯文本,忽略了程序控制流图,导致输出在语法上脆弱且逻辑上不一致,尤其是在优化后的二进制文件上。
  2. HELIOS框架通过将二进制文件的控制流和函数调用抽象为分层文本表示,从而将反编译任务转化为结构化推理问题,提升反编译质量。
  3. 实验结果表明,HELIOS在多种架构上显著提高了反编译代码的可编译性和功能正确性,无需微调即可实现跨平台适用性。

📝 摘要(中文)

本文提出HELIOS,一个将基于LLM的反编译重构为结构化推理任务的框架。HELIOS将二进制文件的控制流和函数调用总结为分层文本表示,详细描述了基本块、它们的后继以及循环和条件等高级模式。此表示与原始反编译器输出一起提供给通用LLM,还可以选择与编译器循环结合,当生成的代码无法构建时,编译器会返回错误消息。在针对x86_64的HumanEval-Decompile上,HELIOS将Gemini 2.0的平均目标文件可编译性从45.0%提高到85.2%,将GPT-4.1 Mini的可编译性从71.4%提高到89.6%。借助编译器反馈,可编译性超过94%,并且功能正确性比仅文本提示提高了5.6个百分点。在来自x86、ARM和MIPS的六种架构中,HELIOS降低了功能正确性的差异,同时保持了语法正确性始终较高,所有这些都无需进行微调。这些特性使HELIOS成为安全环境中逆向工程工作流程的实用构建块,在这些环境中,分析师需要在各种硬件目标上获得可重新编译的、语义上忠实的代码。

🔬 方法详解

问题定义:论文旨在解决基于LLM的反编译方法在处理复杂二进制文件时,由于忽略程序结构而导致的语法错误和语义不一致问题。现有方法将代码视为纯文本,无法有效利用控制流信息,导致反编译结果脆弱,难以编译和执行。

核心思路:论文的核心思路是将二进制文件的控制流和函数调用信息进行抽象,构建一种分层的文本表示,从而将结构化信息融入到LLM的反编译过程中。通过这种方式,LLM可以更好地理解程序的逻辑结构,生成更准确、更可靠的反编译代码。

技术框架:HELIOS框架包含以下主要模块:1) 二进制文件分析模块,用于提取控制流图和函数调用关系;2) 分层图抽象模块,将提取的信息转换为分层文本表示;3) LLM反编译模块,利用分层文本表示和原始反编译器输出,生成反编译代码;4) 编译器反馈模块(可选),利用编译器提供的错误信息,迭代优化反编译结果。

关键创新:HELIOS的关键创新在于其分层图抽象方法,它能够将复杂的程序结构信息以一种易于LLM理解的方式进行编码。这种方法不同于以往的纯文本处理方式,能够显著提高LLM在反编译任务中的性能。

关键设计:分层图抽象的关键设计包括:1) 基本块的文本表示,包括指令序列和后继块信息;2) 循环和条件等高级控制结构的模式识别与文本编码;3) 函数调用关系的文本表示,包括函数名、参数和返回值类型等信息。编译器反馈模块利用编译器返回的错误信息,指导LLM进行迭代优化,提高代码的可编译性和功能正确性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

HELIOS在HumanEval-Decompile基准测试中表现出色,使用Gemini 2.0时,x86_64架构上的平均目标文件可编译性从45.0%提升至85.2%,使用GPT-4.1 Mini时从71.4%提升至89.6%。结合编译器反馈后,可编译性超过94%,功能正确性提升高达5.6个百分点。此外,HELIOS在x86、ARM和MIPS等多种架构上均表现出良好的泛化能力。

🎯 应用场景

HELIOS框架可应用于安全领域的逆向工程,帮助安全分析师快速生成可编译、语义准确的反编译代码,从而加速漏洞分析、恶意软件分析和软件安全评估等任务。该方法在多架构上的适用性使其能够应对各种硬件平台上的安全挑战,具有重要的实际应用价值。

📄 摘要(原文)

Large language models (LLMs) have recently been applied to binary decompilation, yet they still treat code as plain text and ignore the graphs that govern program control flow. This limitation often yields syntactically fragile and logically inconsistent output, especially for optimized binaries. This paper presents \textsc{HELIOS}, a framework that reframes LLM-based decompilation as a structured reasoning task. \textsc{HELIOS} summarizes a binary's control flow and function calls into a hierarchical text representation that spells out basic blocks, their successors, and high-level patterns such as loops and conditionals. This representation is supplied to a general-purpose LLM, along with raw decompiler output, optionally combined with a compiler-in-the-loop that returns error messages when the generated code fails to build. On HumanEval-Decompile for \texttt{x86_64}, \textsc{HELIOS} raises average object file compilability from 45.0\% to 85.2\% for Gemini~2.0 and from 71.4\% to 89.6\% for GPT-4.1~Mini. With compiler feedback, compilability exceeds 94\% and functional correctness improves by up to 5.6 percentage points over text-only prompting. Across six architectures drawn from x86, ARM, and MIPS, \textsc{HELIOS} reduces the spread in functional correctness while keeping syntactic correctness consistently high, all without fine-tuning. These properties make \textsc{HELIOS} a practical building block for reverse engineering workflows in security settings where analysts need recompilable, semantically faithful code across diverse hardware targets.