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