首页> 外文期刊>Software >A refined decompiler to generate C code with high readability
【24h】

A refined decompiler to generate C code with high readability

机译:精致的反编译器,可生成具有高可读性的C代码

获取原文
获取原文并翻译 | 示例
           

摘要

As a key part of reverse engineering, decompilation plays a very important role in software security and maintenance. A number of tools, such as Boomerang and IDA Hex_rays, have been developed to translate executable programs into source code in a relatively high-level language. Unfortunately, most existing decompilation tools suffer from low accuracy in identifying variables, functions, and composite structures, resulting in poor readability. To address these limitations, we present a practical decompiler called C-Decompiler for Windows C programs that (ⅰ) uses a shadow stack to perform refined data flow analysis, (ⅱ) adopts inter-basic-block register propagation to reduce redundant variables, and (ⅲ) recognizes library (i.e., Standard Template Library) functions by signatures. We evaluate and compare the decompilation quality of C-Decompiler with two existing tools, Boomerang and IDA Hex_rays, considering four aspects: function analysis, variable expansion rate, total percentage reduction, and cyclomatic complexity. Our experimental results show that on average, C-Decompiler has the highest total percentage reduction of 55.91%, lowest variable expansion rate of 55.79%, and the same cyclomatic complexity as the original source code for each considered application. Furthermore, in our experiments, C-Decompiler is able to recognize functions with a lower false positive and false negative rate than the other decompilers. A case study and our evaluation results confirm that C-Decompiler is a practical tool to produce highly readable C-style code.
机译:作为逆向工程的关键部分,反编译在软件安全性和维护中起着非常重要的作用。已经开发了许多工具,例如Boomerang和IDA Hex_rays,以相对高级的语言将可执行程序转换为源代码。不幸的是,大多数现有的反编译工具在识别变量,函数和复合结构时准确性低,导致可读性差。为了解决这些限制,我们为Windows C程序提供了一个称为C-Decompiler的实用反编译器,该反编译器(ⅰ)使用影子堆栈执行细化的数据流分析,(ⅱ)采用基本块间寄存器传播来减少冗余变量,并且(ⅲ)通过签名识别库(即标准模板库)功能。我们从两个方面来评估和比较C-Decompiler的反编译质量,即Boomerang和IDA Hex_rays,其中考虑了四个方面:函数分析,可变扩展率,总减少率和循环复杂度。我们的实验结果表明,对于每个考虑的应用程序,C-Decompiler平均具有最高的总百分比减少量55.91%,最低的可变扩展率55.79%,并且循环复杂度与原始源代码相同。此外,在我们的实验中,C-Decompiler能够以比其他反编译器低的误报率和误报率来识别功能。案例研究和我们的评估结果证实,C-Decompiler是生成高度可读的C样式代码的实用工具。

著录项

  • 来源
    《Software》 |2013年第11期|1337-1358|共22页
  • 作者单位

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

    Faculty of Informatics, University of Lugano, Switzerland;

    Shanghai Key Laboratory of Scalable Computing and Systems, School of Software, Department of Computer Science and Engineering, Shanghai Jiao Tong University, China;

  • 收录信息 美国《科学引文索引》(SCI);美国《工程索引》(EI);
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    reverse engineering; decompilation; C language;

    机译:逆向工程;反编译C语言;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号