跳到主要内容
返回时间线
arXiv来源发表:

AutoDecompiler 用强化学习把二进制反编译改成多轮反馈修正,在同规模同输入下稳定超过单轮基线并提升行为可重执行性

核心概要

该工作提出 AutoDecompiler,一个用强化学习训练的、面向反编译的 LLM,把二进制反编译从单轮生成改为基于编译、执行与输入/输出测试反馈的迭代修正过程,并设计覆盖代码有效性、可重编译性、执行一致性与语义保真度的反编译专用奖励,以及来自编译器错误、执行失败和失败测试用例的阶段感知诊断反馈,配合进度感知轨迹奖励与轮次感知优势重加权;在多种输入设置、模型规模和基准上,同模型规模与同输入设置下 AutoDecompiler 一致优于单轮对应方法,在行为可重执行性上取得明显提升。

Source-provided article image: Binary Decompilation LLM with Feedback-Driven Multi-Turn Refinement
Fig. 1 ·

Fig. 1: Overview of feedback-driven multi-turn binary decompilation.

arXiv

深度剖析

把二进制反编译重新表述为反馈驱动的多轮迭代修正,而非一次性代码生成。 此前多数基于 LLM 的反编译方法遵循单轮生成范式:给定汇编代码或反编译器产生的伪代码,模型生成一个输出即停止;该工作让模型依据编译、执行和输入/输出测试反馈反复修订生成代码。 论文摘要明确对比了单轮生成范式与本文的迭代修正过程,并指出单轮输出可能看起来可读甚至能编译成功,却仍偏离原始二进制行为、误导下游分析。

设计了反编译专用奖励,覆盖代码有效性、可重编译性、执行一致性与语义保真度。 将奖励信号从通用代码生成质量扩展到反编译场景特有的可编译、可执行与行为一致等维度,使强化学习目标与反编译的功能正确性对齐。 摘要列出四类奖励维度,并说明这些奖励是为支撑该迭代过程而设计。

构造阶段感知诊断反馈,并引入进度感知轨迹奖励与轮次感知优势重加权。 反馈来自编译器错误、执行失败和失败测试用例,并按阶段组织;轨迹级奖励关注进展,优势重加权按轮次调整,以鼓励有益修订、抑制回退。 摘要明确说明反馈来源与两类训练机制,并给出其目的:鼓励有益修订同时抑制回退。

训练 AutoDecompiler 系列模型并在多设置下评测,同规模同输入下一致优于单轮对应方法,行为可重执行性明显提升。 相对单轮基线,改进体现在行为可重执行性这一功能正确性指标上,而非仅代码可读性或可编译性。 摘要称在多种输入设置、模型规模和基准上评测,且在同模型规模与同输入设置下一致优于单轮对应方法。

启示与展望

该工作面向二进制反编译这一具体任务,适用于能够获得编译、执行与输入/输出测试反馈的设置,例如漏洞发现、恶意软件检查和仅有可执行文件的程序理解。其收益以同模型规模、同输入设置下的对比为参照,即相对单轮对应方法的行为可重执行性提升。方法的价值在于把程序反馈纳入强化学习训练循环,因此其适用前提是反馈信号可构造、可执行。

摘要未给出具体基准名称、模型规模数值、样本量、提升幅度或统计检验,因此改进的绝对大小与在不同二进制类型上的稳定性仍需查看正文实验细节。反馈依赖编译与执行,对难以执行或难以构造输入/输出测试的目标,多轮修正能带来多少收益仍是开放问题。进度感知轨迹奖励与轮次感知优势重加权的具体形式及其各自贡献,也需要正文消融才能判断。

来源