首页> 中文学位 >面向对象软件反编译过程中类的识别方法研究
【6h】

面向对象软件反编译过程中类的识别方法研究

代理获取

目录

声明

摘要

第1章绪论

1.1反编译简介

1.1.1定义

1.1.2产生背景

1.1.3作用

1.2研究历史和现状

1.3相关领域

1.3.1软件逆向工程

1.3.2程序理解

1.3.3软件维护

1.3.4软件正确性验证

1.4本章小结

第2章传统反编译的研究方法

2.1研究方法简介

2.2技术综述

2.2.1程序代码结构

2.2.2程序运行时堆栈

2.2.3程序变量

2.2.4反编译基本模块

2.2.5控制流分析

2.2.6数据类型恢复

2.2.7库函数识别

2.3本章小结

第3章面向对象软件反编译研究方法

3.1面向对象软件设计思想

3.1.1概述

3.1.2一般类

3.1.3内存的分配和释放

3.1.4继承及多态

3.2面向对象软件的反编译

3.2.1研究背景及意义

3.2.2研究目标

3.2.3类函数

3.2.4类函数外部特征码

3.2.5类函数内部特征码

3.2.6类函数的归类

3.2.7虚函数的处理

3.2.8存在的问题

3.3本章小结

第4章实验系统设计

4.1算法设计

4.1.1中间语言设计

4.1.2程序切片

4.1.3模拟执行算法

4.1.4类函数归类算法

4.2技术路线

4.2.1 IDA pro及其插件系统

4.2.2 Visual C++2003.NET编程环境介绍

4.2.3系统基本构架

4.3本章小结

第5章实验

5.1实验样本选择

5.2实验一

5.3实验二

第6章总结及展望

参考文献

致谢

攻读硕士期间发表的论文

展开▼

摘要

可执行程序的反编译是逆向工程中一个重要的研究领域,自高级程序设计语言出现之时,反编译就随之出现了。传统的针对过程式语言的反编译的研究已经颇有建树,而如今随着面向对象概念在软件设计中的广泛应用,能够反编译由面向对象思想设计出来的软件并且揭示此软件整体构架的反编译应用软件却迟迟没有出现,甚至针对此类的研究文献也很少见。原因就在于反编译此类软件除了给出程序的流程外,还要进一步分析出软件的构架,因此难度大大增加。在面向对象软件中,软件的构架由一组类及它们相互之间的联系来构成。因此如果能识别出其中的类及类中所包含的方法和属性就能获得软件的构架信息。获得完整的类信息是一项很具有挑战性的工作,本文对此做了比较深入的研究,其主要包含了如下几个方面的工作: 1)比较了传统反编译和面向对象反编译的不同点。 2)通过对OOP软件的汇编码进行研究分析,给出了一种能够分析出其中所包含类及其类中成员函数的方法。 3)完成了一个针对OOP软件汇编码的类及类函数识别的实验系统,并对实验结果进行了探讨,由此对本论文提出的方法作了总结,对下一步工作做了进一步展望。 在计算机软件领域,反编译一直发挥着重要的作用,但一直以来,由于研究的高难度以及合法性等问题,较少受到人们的关注。随着软件技术的不断发展,对现有软件的学习、理解、改造、维护和重用都变得日益重要,越来越多的新方向出现必定能使反编译找到新的舞台。

著录项

  • 作者

    周国华;

  • 作者单位

    中国科学技术大学;

  • 授予单位 中国科学技术大学;
  • 学科 计算机应用技术
  • 授予学位 硕士
  • 导师姓名 陈凯明;
  • 年度 2007
  • 页码
  • 总页数
  • 原文格式 PDF
  • 正文语种 中文
  • 中图分类 TP311.52;
  • 关键词

    可执行程序; 反编译; 软件设计; 面向对象;

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号