首页> 中文学位 >面向Java语言逆向技术的研究与实现
【6h】

面向Java语言逆向技术的研究与实现

代理获取

目录

声明

致谢

摘要

1 引言

1.1 研究背景及意义

1.2 研究现状

1.2.1 反编译技术研究现状

1.2.2 逆向工程抽象模型研究现状

1.3 本文主要研究工作

1.4 本文的组织结构

2 逆向工程技术

2.1 逆向技术定义

2.2 反编译技术

2.3 逆向工程高层次抽象技术

2.3.1 UML简介

2.3.2 源程序分析技术

2.4 本章小结

3 Java反编译机制及规则

3.1 面向对象语言JAVA

3.2.class文件

3.3 字节码

3.4 类文件基本格式

3.4.1 方法和字段描述符

3.4.2 类文件结构

3.4.3 属性

3.5 反编译具体过程

3.6 破解混淆码

3.6.1 混淆定义

3.6.2 破解混淆的代码

3.6.3 调试程序Omniscient破译编码

3.7 本章小结

4 UML类图抽象机制及规则

4.1 类静态信息获取

4.1.1 词法分析和语法分析

4.1.2 分析数据源获取静态关联信息

4.2 类抽取机制

4.2.1 实体类型

4.2.2 属性转换

4.2.3 角色分离

4.3 源代码抽象UML类图的规则

4.3.1 类与类之间的关系

4.3.2 源代码抽象规则

4.3.3代码逆向表示

4.4 本章小结

5 逆向工具MyRec的实现

5.1 反编译模块实现

5.2 UML类图抽象模块实现

5.3 本章小结

6 逆向工具MyRec实验及结果分析

6.1 测试环境

6.2 测试用例和对象

6.3 实验及结果分析

6.4 本章小结

7 总结及展望

参考文献

附录

作者简历及攻读硕士学位期间取得的研究成果

学位论文数据集

展开▼

摘要

针对软件工程领域开发过程中存在的问题,比如程序软件源代码或者设计文档的丢失,对一些遗产系统程序的理解和读取变得越来越难,因此逆向技术成为计算机领域日益关注的对象之一。在软件许可的前提下,开发者选择以反编译或者抽象方法去得到原系统程序的源代码或者结构信息,这不仅节约开发成本,而且很大程度上提高了开发的效率。
  以往的逆向技术工具在基本功能实现上已经设计的比较完善,但是还是需要因地制宜,针对不同的环境不同的群体满足不同的需求。首先,许多反编译工具只针对由目标执行文件反编译得到源代码,UML类图绘制工具只针对目标文件进行绘制类图,没有提供给用户源代码。其次,对于大多数新用户显得较为复杂,许多逆向工具需要复杂特殊的环境作为支撑,对于刚接触逆向技术领域的学生或者新用户而言,选择一个简单易用、操作方便不需要复杂的环境作支撑的逆向工具是首要解决的问题。此外,随着越来越成熟的反逆向技术的产生,需要实现一些破译反逆向技术的方法,例如破译混淆、加壳等问题势在必行。因此,需要一个工具实现这些需求和功能。既能够实现反编译工作,又能够在此基础上抽象出该系统程序的结构信息,不仅可以利用遗产系统程序再改造,也可以符合大多数用户的需求,实现中文界面,简单运行环境,集反编译和UML类图可视化为一体的逆向工具。
  本文的实现工具是面向对象语言Java来实现逆向技术,分为两大功能模块,第一:实现对Java类文件的反编译。主要研究工作:通过对面向对象语言Java及其类文件的结构和功能分析,研究逆向反编译技术的具体过程,在实现基本反编译技术的基础上生成符合大多数用户需求的中文人机交互界面,阐述实现破译混淆代码的方法,并在基本功能之外增加了新的功能点,比如删除编译器加入的冗余注释、标注行号等功能。第二:在反编译出源代码之后生成UML类图抽象出结构信息。主要研究工作:通过词法分析、语法分析得到基本的源代码程序结构资源,进一步研究抽象机制和类静态信息获取的规则,最终实现UML类图可视化,即类图的建立,反映系统程序的整体结构信息。结合两部分的大功能模块开发出逆向技术工具MyRec,最后用实验进行验证此逆向工具的可行性和有效性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号