逆向工程在软件维护方面的应用研究.pdf

逆向工程在软件维护方面的应用研究.pdf

ID:53727280

大小:161.15 KB

页数:2页

时间:2020-04-20

逆向工程在软件维护方面的应用研究.pdf_第1页
逆向工程在软件维护方面的应用研究.pdf_第2页
资源描述:

《逆向工程在软件维护方面的应用研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第13卷第5期Vo1.13N0.52014年5月Mav.2014逆向工程在软件维护方面的应用研究杜丹(马鞍山师范高等专科学校软件与食品工程系,安徽马鞍山243041)摘要:介绍了逆向工程产生的历史背景、发展现状以及逆向工程在软件维护领域中的作用。然后对软件维护过程中在缺乏有效文档的情况下怎样利用软件逆向工程进行了分析论述,并给出简要分析步骤。关键词:逆向_12程;软件维护;抽取;抽象中图分类号:TP3—0文献标识码:A文章编号:1672—7800(2014)005—0047—020引言软件逆向工程

2、基本方式逆向工程(Reverseengineering)也叫反向工程、反Chikofsky和Cross把软件逆向工程定义为:通过分求1二程,最早现在商业设计领域和军事硬件分析领析一个原有系统、识别系统的各个组成部分以及它们之间域,是通过对已有设备进行测量得到数据,再通过数据的关系,生成另外一种形式或更高抽象层次的系统表示的建立三维几何模型,并在此基础上研究开发新产品。过程。通常,这意味着通过分析程序的源代码为系统建立近年来,随着汁算机技术的飞速发展、计算机网络的迅一个再工程的框架设计]。逆向工程主

3、要解决程序的理速普及,以及反汇编及反编译技术的成熟应用,“逆向解问题J,如图1所示。T程”逐渐被引用到软件维护及开发领域。在软件生正向工程命周期中,软件维护的好坏直接影响软件的使用寿命,厂I需]求irJ_(F』设二计=J~——~—实二现f—而软件的维护和更新占软件开发费用的50以上。过J一一去因为局限于计算机硬件的性能,软件系统规模一般重构重构逆向工程重构不是很大,软件开发费用也相对较低,当软件不适用图1逆向工程关系时,通常的做法是重新开发一个新软件替代旧的软件目前在软件工程领域,还没有给出软件逆

4、向工程的标系统。而现在的软件系统无论从规模还是复杂度上都准方法。一般认为,软件逆向工程方法包含抽取和抽象两有了质的飞跃,重新开发新系统比维护原有系统付出个步骤:第一步抽取,即分析原有系统,标识系统对象及对的代价要大的多,这使得软件开发公司也逐渐重视起象之间的关系;第二步抽象,即创建不同形式或更高形式软件的维护和更新。而现实中软件公司人员的更替、抽象层次的系统表示,主要用于将程序源代码转换为更高开发软件时各类文档的缺失,使得很多公司在软件维层次的表示,如控制流图、数据流图和类关系图。无论是护过程中才

5、发现软件维护工作的艰难,经常出现原有抽象还是抽取都需要分析原有系统,而分析原有系统首先系统中部分代码无法理解的现象。软件逆向工程就是建立在理解原有系统的基础上。对原有系统的理解方法通过分析目标系统的代码,对目标系统进行建模来提分为自顶向下的方法和自底向上的方法。自顶向下的方供帮助理解的有用信息,从而推导出软件设计,得出完法是对原有系统建立一种假设,对这一假设进行验证,并整的开发文档,以帮助软件开发、维护人员理解原有系在验证过程中对原有系统进行理解。预先设定的假设内统,从而更好地对原有系统进行维护和

6、更新。逆向工容应具有很强的针对性,通过重复设定不同的假设内容,程适用于软件生命周期的任何阶段,是软件设计过程逐渐深入理解原有系统。在验证过程中,假设内容针对性的设计恢复过程,可使用逆向工程方法及工具分析原越强则越容易理解原有系统,测试次数越多越容易掌握原有系统,抽取原有系统的数据、体系结构和设计信息。有系统的设计,通过对原有系统中重复的内容及内容大本文主要介绍软件逆向1二程在软件维护、更新阶段的小、重复的次数及上下文等信息进行考察,可以使维护人作用。作者简介:杜丹(1982),女,硕士,马鞍山师范

7、高等专科学校软件与食品工程系讲师,研究方向为软件逆向工程、软件需求工程。·48·软件导刊2O14年员快速理解原有系统;自底向上的方法,即对原有程序的流图,对二进制代码的反汇编分析是第一步,利用IDEPro源代码进行分析,通过分析逐步对原有系统的各功能进行SDK开发包可以帮助进行反汇编分析,利用分析结果得到深入理解,分析推导出实现过程,得出程序的整体框架,建的信息建立函数调用关系图和控制流图。然后再在这两种立程序文档。源代码的获得一般来说是开发软件时遗留流图的基础上进行断点跟踪,断点的设置是为了在程

8、序执下来用于存档的,而如果出现源代码缺失的情况,就需要行过程中逐步理解程序。设置断点后,程序到达断点将暂借助反汇编、反编译和动态跟踪等方法。通过反汇编工具停执行,记录执行路径和寄存器数据,以便之后分析每个断(如OllyDebug和IDA)把程序的机器码翻译成可以阅读点处的执行情况和上下文环境。通过一步步设置不同的断的汇编代码,因为机器码不容易阅读,或者说是一般程序点可以使分析人员了解程序的执行方式,理解程序结构,把员无法阅读的。反编译是指通过各类高级程序的反编译运行时的信息和之前的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。