首页> 外文学位 >Deep analysis of binary code to recover program structure.
【24h】

Deep analysis of binary code to recover program structure.

机译:深入分析二进制代码以恢复程序结构。

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

摘要

Reverse engineering binary executable code is gaining more interest in the research community. Agencies as diverse as anti-virus companies, security consultants, code forensics consultants, law-enforcement agencies and national security agencies routinely try to understand binary code. Engineers also often need to debug, optimize or instrument binary code during the software development process.;In this dissertation, we present novel techniques to extend the capabilities of existing binary analysis and rewriting tools to be more scalable, handling a larger set of stripped binaries with better and more understandable outputs as well as ensuring correct recovered intermediate representation (IR) from binaries such that any modified or rewritten binaries compiled from this representation work correctly.;In the first part of the dissertation, we present techniques to recover accurate function boundaries from stripped executables. Our techniques as opposed to current techniques ensure complete live executable code coverage, high quality recovered code, and functional behavior for most application binaries. We use static and dynamic based techniques to remove as much spurious code as possible in a safe manner that does not hurt code coverage or IR correctness. Next, we present static techniques to recover correct prototypes for the recovered functions. The recovered prototypes include the complete set of all arguments and returns. Our techniques ensure correct behavior of rewritten binaries for both internal and external functions.;Finally, we present scalable and precise techniques to recover local variables for every function obtained as well as global and heap variables. Different techniques are represented for floating point stack allocated variables and memory allocated variables. Data type recovery techniques are presented to declare meaningful data types for the detected variables. Our data type recovery techniques can recover integer, pointer, structural and recursive data types. We discuss the correctness of the recovered representation.;The evaluation of all the methods proposed is conducted on SecondWrite, a binary rewriting framework developed by our research group. An important metric in the evaluation is to be able to recompile the IR with the recovered information and run it producing the same answer that is produced when running the original executable. Another metric is the analysis time. Some other metrics are proposed to measure the quality of the IR with respect to the IR with source code information available.
机译:逆向工程二进制可执行代码在研究界引起了越来越多的兴趣。反病毒公司,安全顾问,代码取证顾问,执法机构和国家安全机构等机构通常试图理解二进制代码。工程师还经常在软件开发过程中需要调试,优化或检测二进制代码。本文,我们提出了新颖的技术来扩展现有二进制分析和重写工具的功能,使其具有更高的可扩展性,可以处理更大范围的剥离二进制文件。具有更好,更易理解的输出,并确保从二进制文件中正确地恢复了中间表示(IR),以使从该表示形式编译的任何修改或重写的二进制文件都能正常工作。;在论文的第一部分,我们提出了用于恢复准确函数边界的技术从剥离的可执行文件中。与当前技术相反,我们的技术可确保完整的实时可执行代码覆盖率,高质量的已恢复代码以及大多数应用程序二进制文件的功能行为。我们使用基于静态和动态的技术以安全的方式删除尽可能多的伪代码,而不会损害代码覆盖率或IR正确性。接下来,我们介绍静态技术来恢复所恢复功能的正确原型。恢复的原型包括所有参数和返回值的完整集合。我们的技术确保内部和外部函数重写二进制文件的正确行为。最后,我们提出了可伸缩且精确的技术来为每个获得的函数以及全局变量和堆变量恢复局部变量。对于浮点堆栈分配的变量和内存分配的变量,表示了不同的技术。提出了数据类型恢复技术来声明所检测变量的有意义的数据类型。我们的数据类型恢复技术可以恢复整数,指针,结构和递归数据类型。我们讨论了恢复表示的正确性。对所有建议方法的评估是在SecondWrite上进行的,SecondWrite是我们研究小组开发的二进制重写框架。评估中的一个重要指标是能够使用恢复的信息重新编译IR并运行它,以产生与运行原始可执行文件时相同的答案。另一个指标是分析时间。提出了一些其他度量来相对于具有可用源代码信息的IR来测量IR的质量。

著录项

  • 作者

    ElWazeer, Khaled.;

  • 作者单位

    University of Maryland, College Park.;

  • 授予单位 University of Maryland, College Park.;
  • 学科 Engineering Computer.;Computer Science.
  • 学位 Ph.D.
  • 年度 2014
  • 页码 203 p.
  • 总页数 203
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号