Skip to main content
QUICK REVIEW

[论文解读] SoK: All You Ever Wanted to Know About x86/x64 Binary Disassembly But Were Afraid to Ask

Chengbin Pang, Ruotong Yu|arXiv (Cornell University)|Jul 28, 2020
Manufacturing Process and Optimization被引用 7
一句话总结

本文通过分析九款开源工具所使用的3,788个二进制文件,对x86/x64二进制反汇编知识进行了全面的系统化整理。它将反汇编策略分类为算法性与基于启发式的方法,揭示了尽管所有工具均采用严谨的算法,但都严重依赖启发式方法,从而在代码覆盖率与正确性之间产生权衡,这决定了每款工具的优势与劣势。

ABSTRACT

Disassembly of binary code is hard, but necessary for improving the security of binary software. Over the past few decades, research in binary disassembly has produced many tools and frameworks, which have been made available to researchers and security professionals. These tools employ a variety of strategies that grant them different characteristics. The lack of systematization, however, impedes new research in the area and makes selecting the right tool hard, as we do not understand the strengths and weaknesses of existing tools. In this paper, we systematize binary disassembly through the study of nine popular, open-source tools. We couple the manual examination of their code bases with the most comprehensive experimental evaluation (thus far) using 3,788 binaries. Our study yields a comprehensive description and organization of strategies for disassembly, classifying them as either algorithm or else heuristic. Meanwhile, we measure and report the impact of individual algorithms on the results of each tool. We find that while principled algorithms are used by all tools, they still heavily rely on heuristics to increase code coverage. Depending on the heuristics used, different coverage-vs-correctness trade-offs come in play, leading to tools with different strengths and weaknesses. We envision that these findings will help users pick the right tool and assist researchers in improving binary disassembly.

研究动机与目标

  • 为解决二进制反汇编研究中缺乏系统化整理的问题,该问题阻碍了工具选择与研究进展。
  • 理解主流开源反汇编器在设计与行为上的差异。
  • 衡量单个算法与启发式方法在不同工具中对反汇编结果的影响。
  • 基于对九款工具的实证评估,提出反汇编策略的分类体系。
  • 为研究人员与实践者提供选择合适工具及改进未来反汇编技术的指导。

提出的方法

  • 作者对九款广泛使用的开源反汇编器进行了手动源码分析,以逆向推导其内部策略。
  • 他们开展了迄今为止最全面的实验评估,分析了涵盖多种软件类别的3,788个二进制文件。
  • 反汇编结果的准确性和代码覆盖率被测量,重点在于分离单个算法与启发式方法的贡献。
  • 研究将反汇编技术分类为基于原则的算法或基于启发式的扩展,依据其设计与影响。
  • 开发了系统化的策略分类,区分算法基础与启发式驱动的扩展。
  • 使用定量指标评估正确性与覆盖率之间的权衡,揭示了各工具特有的行为特征。

实验结果

研究问题

  • RQ1现代开源工具中占主导地位的反汇编策略是什么?它们之间有何不同?
  • RQ2在实践中,反汇编器在多大程度上依赖启发式方法而非基于原则的算法?
  • RQ3不同的启发式选择如何影响覆盖率与反汇编正确性之间的权衡?
  • RQ4单个算法对每款工具整体反汇编质量的可测量影响是什么?
  • RQ5现有工具的设计选择如何为未来研究与工具开发提供启示?

主要发现

  • 所有九款工具均以基于原则的算法作为基础,但严重依赖启发式方法以提升代码覆盖率。
  • 启发式方法的选择显著影响覆盖率-正确性之间的权衡,导致各工具表现出截然不同的行为特征。
  • 尽管使用了相似的核心算法,由于启发式方法的差异,工具在反汇编准确率与覆盖率方面表现出显著差异。
  • 研究发现,启发式策略是反汇编结果差异的主要来源,而非算法设计本身。
  • 实验评估证实,没有一款工具能同时实现高覆盖率与高正确性,验证了该权衡的固有性。
  • 研究结果提供了清晰的分类体系与实证依据,可依据具体使用场景(如恶意软件分析或二进制加固)进行工具选择。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。