论文部分内容阅读
逆编译是编译的逆过程,作为软件逆向工程的重要组成部分,在代码分析、软件维护、软件安全验证等方面起了非常重要的作用。由于受到研究难度、合法性争论、开源代码等因素影响,针对WINDOWS操作系统下的C++语言编写的可执行程序的逆编译研究一直没有取得令人满意的成果。但是大量未开源的C++可执行程序的分析与维护工作又亟待逆编译技术去解决。
基于以上现状,本文在逆编译技术的研究基础上,对WINDOWS操作系统下的C++语言编写的可执行程序逆编译的理论、方法和技术方面进行了探索和研究,取得了一定的创新性成果。具体工作如下:
1.分析了WINDOWS操作系统下的C++语言编写的可执行程序的特点,对传统的逆编译系统模型进行了相应的修改。增加了内存数据提取模块,以完善面向消息的可执行程序的逆编译工作。
2.在已有的库函数识别方法的基础上,研究基于特征值的模板库函数识别技术,解决了特征值冲突的问题,进一步完善了C++库函数识别技术的理论与方法。为C++语言逆编译系统的研究积累了一定的经验。
3.通过大量的可执行程序代码阅读与比对,给出了以消息为基础的可执行程序内存数据段各种数据结构的提取识别方法。为该类可执行程序的逆编译工作提供了大量的数据信息,对后续的数据流恢复、控制流恢复提供了非常大的便利。
本文的工作为C++编写的基于消息的可执行程序逆编译技术的研究积累了一定的经验,能给从事相关研究工作的人员带来一定的帮助。随着软件技术的不断发展,人们越来越重视对程序的理解、维护与重用,越来越多与逆编译相关的领域正在成为人们研究的热点,一个需要逆编译技术崭露头角的新舞台也必定会到来。