#binary-decompilation

共收录 1 条相关安全情报。

← 返回所有主题
👥 作者: Puzhuo Liu, Yuhan Huang, Jianlei Chi, Peng Di, Yu Jiang

二进制反编译旨在将二进制代码恢复为高级语言源代码,但现有评估方法主要依赖语法相似性(如BLEU)或单一维度的可读性指标(如McCabe复杂度),无法反映实际可复用性。本文提出一种以可复用性为导向的评估范式,从三个正交维度衡量反编译器质量:可读性(代码是否易于理解)、可重编译性(反编译代码能否直接编译为目标程序)、功能性(反编译代码执行结果是否与原始二进制一致)。为实现这一范式,作者构建了DEBENCH框架,包含240个原子测试函数,组织成8个源文件并编译为640个二进制文件(覆盖多种编译选项和架构)。DEBENCH集成三种评估手段:基于LLM作为评判者的可读性评分(包含18个子维度的URAF评分体系)、在固定50次迭代预算下的迭代编译-修复流程(评估可重编译性)、以及基于Frida的差分动态追踪(在程序级、函数级和指令级比对执行行为)。研究评估了5款主流反编译器(如Ghidra、IDA Pro、Hex-Rays等)和3个用于修复的LLM(如GPT-4、Claude等)。主要发现包括:(1)可复用性悬崖显著:最佳反编译器-LLM组合在程序级行为重叠上达到22.3%(精确+部分匹配),但精确stdout匹配仅1.2%,远低于可重编译性指标(约50个百分点);(2)可读性最佳设置并不最大化功能性:-O3优化产生最低可读性但最高功能性,Clang生成的可读性低于GCC但功能性高2.6倍;(3)反编译器间的功能级差异是修复LLM间差异的20倍(20x vs 1.6x),说明进展更依赖反编译器引擎而非更大规模的修复模型;(4)反编译失败可分为三类:语法噪声、类型系统坍塌(约占修复错误的19%)、以及不可逆的上游信息损失(如ARM64重定位惯用法、C++ ABI特性)。该研究为反编译工具选择、自动化补丁分析、恶意代码逆向等安全场景提供了量化基准。

💡 推荐理由: 二进制反编译是逆向工程和漏洞分析的核心环节,但现有评估指标脱离实际复用场景。DEBENCH首次从可读性、可重编译性、功能性三维量化反编译质量,揭示了不同优化选项和编译器对反编译结果的影响,帮助安全从业者选择最适合自己工作流的反编译工具和配置。

🎯 建议动作: 研究跟进

排序因子: 有可用补丁/修复方案 (+3) | 来自 arXiv 其他板块 (+2) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)