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