反汇编工具中间接跳转表求解算法分析与测试
作者:
作者单位:

作者简介:

通讯作者:

中图分类号:

TP311

基金项目:

国家自然科学基金重点项目(6203000040); 国家自然科学基金面上项目(62172201, 61272078)


Analysis and Testing of Jump Table Solving Algorithms in Disassembly Tools
Author:
Affiliation:

Fund Project:

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    二进制反汇编是困难的, 但是对于提高二进制软件的安全性至关重要. 造成二进制反汇编比较困难的一大原因是编译器为了提高效率会在二进制代码中引入很多间接跳转表. 为了求解间接跳转表, 主流反汇编工具采用了各种策略. 然而, 这些策略的具体实现以及策略的效果不得而知. 为了帮助研究人员理解反汇编工具的算法实现以及性能, 首先系统总结反汇编工具求解间接跳转表的策略; 然后构建自动化测试间接跳转表框架, 基于该框架, 可以大规模地生成关于间接跳转表的测试集(包含2410455个跳转表); 最后, 在该测试集上, 对反汇编工具求解间接跳转表的性能进行评估, 并人工分析反汇编工具的每个策略引入的错误. 另外, 得益于针对反汇编工具算法实现的系统性总结, 发现6个反汇编工具实现上的bugs.

    Abstract:

    Disassembly of binary codes is hard but necessary for improving the security of binary software. One of the major reasons for the difficult binary disassembly is that the compilers create many jump tables in the binary code for efficiency. In order to solve the targets of the jump table, mainstream disassembly tools use various strategies. However, the details of the implementation of these strategies and their effectiveness are not well studied. To help researchers to well understand the algorithm implementation and performance of disassembly tools, this study first systematically summarizes the strategies used by disassembly tools to solve jump tables; then the study builds an automatic framework for testing jump tables, based on which a large-scale testsuite on jump tables (2410455 jump tables) can be generated. Lastly, this study evaluates the performance of the disassembly tools in solving jump tables on the testsuite and manually analyzes the errors introduced by each strategy of the disassembly tools. In addition, this study finds six bugs in the implementation of the disassembly tools benefiting from the systematic summary of the implementation of the disassembly tool algorithm.

    参考文献
    相似文献
    引证文献
引用本文

庞成宾,徐雪兰,张天泰,茅兵.反汇编工具中间接跳转表求解算法分析与测试.软件学报,,():1-19

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2022-11-30
  • 最后修改日期:2023-02-02
  • 录用日期:
  • 在线发布日期: 2023-10-18
  • 出版日期:
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号