论文
具有反馈驱动多轮细化的二进制反编译 LLM
Binary Decompilation LLM with Feedback-Driven Multi-Turn Refinement
摘要
二进制反编译对于漏洞发现、恶意软件检查和仅可执行程序理解等安全任务至关重要。最近基于 LLM 的反编译方法已经显示出有希望的结果,但大多数仍然遵循单轮生成范例:给定汇编代码或反编译器生成的伪代码,模型生成一个输出并停止。因此,生成的代码可能看起来可读,甚至编译成功,但仍然偏离原始二进制文件的行为并误导下游分析。本文介绍了 AutoDecompiler,这是一种专门用于反编译的 LLM,经过强化学习训练,用于反馈驱动的多轮二进制反编译。 AutoDecompiler 没有将反编译视为一次性代码生成,而是将其制定为迭代细化过程,其中模型根据编译、执行和输入/输出测试反馈修改生成的代码。为了实现这一过程,我们设计了针对反编译的奖励,以捕获代码有效性、可重编译性、执行一致性和语义保真度。我们进一步从编译器错误、执行失败和失败的测试用例中构建阶段感知的诊断反馈,并引入进度感知的轨迹奖励和回合感知的优势重新加权,以鼓励有益的修订,同时抑制回归。我们训练 AutoDecompiler 系列并在不同的输入设置、模型规模和基准测试中对其进行评估。实验结果表明,在相同的模型大小和输入设置下,AutoDecompiler 始终优于单轮同行,在行为可重执行性方面实现了明显的改进。这些结果表明,学习通过强化学习来利用程序反馈是提高基于 LLM 的二进制反编译功能正确性的有效方向。