软件体系结构在软件逆向工程中的应用---毕业论文.doc

上传人:滴答 文档编号:1274288 上传时间:2019-01-26 格式:DOC 页数:51 大小:788.50KB
下载 相关 举报
软件体系结构在软件逆向工程中的应用---毕业论文.doc_第1页
第1页 / 共51页
软件体系结构在软件逆向工程中的应用---毕业论文.doc_第2页
第2页 / 共51页
软件体系结构在软件逆向工程中的应用---毕业论文.doc_第3页
第3页 / 共51页
软件体系结构在软件逆向工程中的应用---毕业论文.doc_第4页
第4页 / 共51页
软件体系结构在软件逆向工程中的应用---毕业论文.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、 本 科 毕 业 论 文 软件体系结构在软件逆向工程中的应用 Software Architecture in Software Reverse Engineering 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月摘要 I 摘 要 随着软件产业的进一步发展,网络安全和企业软件技术竞争越来越受到人们关注,逆向工程被引入软件工程。 然而,当前行业业务复杂,软件规模也随之扩大,软件代码疾速膨胀,相对应的汇编代码更是无法计算,如何分析一个大规模的软件已经成为许多逆向工作者最头疼的问题。 软件逆向工程是一个从产品代码设计的过程,如果掌握了软件的体系结

2、构,将软件体系结构应用在软件逆向工程中,在进行逆向分析工作时就有规律可循,从而能够实现在短时间内从海量代码中找出自己所关心的技术细节,这就可以大大的缩短分析时间和任务工作量。 面向过程开发与面向对象开发一直是软件产业中应用最为广泛的开发模式。本文就这两种典型的开发 模式,结合实际例子,运用软件 体系结构知识,分别进行了详细的分析。 在基于 面向 过程开发 的软件分析 中,选取了备受 IT界关注的网络安全领域 病毒技术作为范例, 另外一个示例是以事件驱动为架构 的 基于Win32开发的小型桌面应 用程序分析。说到面向对象,以类为核心,就不得不提起最经典的类库。 在面向对象开发的软件的逆向分析这部

3、分,集中分析了微软类库 MFC框架下的一些规律。从而总结出了几个不同领域,不同框架下的 软件的逆向分析的规律,并提出了下一步展望。 关键词 : 软件体系结构; 逆向工程;反汇编技术Abstract II Abstract With the development of software industry, the competition of network security and enterprise software technology were more and more concerned about, reverse engineering was introduced to t

4、he software industry. But the business of current software industry is very complicated, the code is very huge and the corresponding assembly code is now impossible to calculate. As a result, how to analyze a very large scale software is becoming a most troublesome problem to the software reverse en

5、gineer. Software Reverse Engineering is a process form product to code and then to design. If you master the software architecture, and use it in the software reverse engineering, you will have rules to follow in the analysis, find out the concerns technology details from the massive code in a short

6、 time, so it can greatly shorten the analysis time and task workload. Process-oriented and object-oriented development model have been the most widely used in software industry. This dissertation focuses on the two typical development models, with practical examples and the knowledge of software arc

7、hitecture, carried out a detailed analysis of each example. I take the network security - virus technology as an example for the process-oriented development process which is concerned much by the IT industry. Another example is a small desktop application which is developed by event driven and base

8、d on Win32 framework. Speaking of object-oriented, with class as the core, we have to bring the classic class library. In object-oriented software development reverse, this dissertation concentrates on the Microsoft MFC framework, and find out some rules. Thus this dissertation concludes several reg

9、ular patterns of reverse analysis at different domains, and comes up with the expectation in the next step. Key words: Software Architecture; Reverse Engineering; Disassembly Technology目录 III 目 录 第一章 绪论 . 1 1.1 引言 . 1 1.2 论文组织结构 . 2 第二章 软件体系结构风格和软件逆向工程概述 . 3 2.1 软件体系结构风格概述 . 3 2.1.1 数据流风格 . 3 2.1.2

10、调用 /返回风格 . 4 2.1.3 虚拟机风格 . 5 2.1.4 数据仓库风格 . 5 2.1.5 独立组件风格 . 6 2.2 软件逆向工程相关概述 . 7 2.2.1 软件逆向分析的各个阶段 . 7 2.2.2 反汇编技术及其在软件开发中的 应用 . 9 2.2.3 IDA Pro 工具介绍 . 10 第三章 软件体系结构在逆向工程中的应用一 . 12 3.1 过程恢复技术 . 12 3.1.1 函数的识别 (开始和结束 ) . 12 3.1.2 函数的参数 . 12 3.1.3 函数返回值 . 14 3.2 计算机病毒 . 14 3.2.1 病毒的体系结构 . 14 3.2.2 病毒

11、技术提取与总结 . 15 3.2.3 软件体系结构对病毒分析的指导意义 . 20 3.3 事件驱动应用程序 . 20 3.3.1 事件驱动应用程序的体系结构 . 21 目录 IV 3.3.2 事件驱动系统实例分析 . 21 第四章 软件体系结构在逆向工程中的应用二 . 27 4.1 基于类的软件分析概况 . 27 4.2 基于类的分析 . 29 4.2.1 识别类 . 29 4.2.2 识别对象 . 31 4.2.3 识别类与类之间的关系 . 32 4.3 基于类的软件的实例分析 HttpSniffer . 36 第五章 总结与展望 . 41 5.1 论文总结 . 41 5.2 工作展望 .

12、41 参考文献 . 42 致 谢 . 43 Contents V Contents Chapter 1 Introduction . 1 1.1 Introduction . 1 1.2 Structure of this Dissertation . 2 Chapter 2 Overview of SA Style and Software Reverse Engineering . 3 2.1Software Architecture Styles Overview . 3 2.1.1 Data Flow Style. 3 2.1.2 Call Back Style. 4 2.1.3 Vi

13、rtual Machine Style . 5 2.1.4 Data Warehouse Style . 5 2.1.5 Independent Component Style . 6 2.2 Overview of software reverse engineering . 7 2.2.1 Stages of Software Reverse Analysis . 7 2.2.2 Disassemble and Disassemble Technology in Software Development. 9 2.2.3 Introduction of IDA Pro . 10 Chapt

14、er 3 Software Architecture in Reverse Engineering Part 1. 12 3.1 Process Recovery Technology . 12 3.1.1 Identify Functions . 12 3.1.2 Parameters . 12 3.1.3 Return Values . 13 3.2 Computer Virus. 14 3.2.1 Architecture of Virus . 14 3.2.2 VirusTechnology Extraction and Summarization . 15 3.2.3 The Sig

15、nificance of SA in Analysis Virus . 20 3.3 Event-driven Application. 21 3.3.1 Architecture of Event-driven Application . 21 3.3.2 An Example of event-driven system . 21 Contents VI Chapter 4 Software Architecture in Reverse Engineering Part 2. 27 4.1 Overview of Analysis on Class-Based Software . 27

16、 4.2 Class-Based Analysis. 29 4.2.1 Identify Classes . 29 4.2.2 Identify Objects. 31 4.2.3 Identify the Relationship between Classes . 32 4.3 Analysis of Class-based Case HttpSniffer . 35 Chapter 5 Conclusions and Future Works . 41 5.1 Conclusions of this Dissertation . 41 5.2 Future Works . 41 Refe

17、rences . 42 Acknowledgements. 43 第一章 绪论 1 第一章 绪论 1.1 引言 逆向工程这一术语最早来源于机械工程领域。随着软件工程技术的发展、软件市场的竞争越来越大、软件遗产系统越来越多,逆向工程被引入软件工程领域。软件 逆向工程是指“ 分析目标系统以便识别系统的部 件及其关系,并用另外一种形式或在更高的抽象层次表示系统的过程”。 软件逆向工程分为两类:第一类是从已知软件系统的完整代码出发,生成对应系统的结构以及相关设计原理和算法思想的文档。第二类是从没有源代码的程序出发,生成对应的源程序、系统结构以及相关设计原理和算法思想的文档。然而实际上,很多人都不愿意把

18、源码公布出来,真正有意义的软件逆向工作就是指从没有源码的产品中经过逆向生成源程序,得到产品的设计思想 1。 在为解决从需求到实现之间的转换问题,从实际上提高软件质量时,软件体系结构概念 产生了。软件体系结构试图在软件需求与软件设计之间架起一座桥梁, 着重解决软件系统的结构和需求向实现平坦地过渡的问题。本质上, 软件体系结构是对软件需求的一种抽象解决方案。这样,在引入了体系结构之后, 软件系统的开发变为“问题定义软件需求软件体系结构软件设计软件实现”的过程 2。 逆向工程在软件行业中的典型应用是开发有竞争力的软件产品,由于逆向工程是一个非常复杂的过程,所以在软件行业中的应用并不普遍。当前行业业务

19、复杂,软件规模也随之扩大,软件代码疾速膨胀,相对应的汇编代码更是无法计算,如何分析一个大 规模的软件已经成为许多软件逆向工作者最头疼的问题。 软件逆向工程是一个从产品代码设计的过程。好的软件产品,必然是合理的应用了软件体系结构进行设计的,所以掌握了软件的体系结构,将软件体系结构知识应用在软件逆向工程中,在进行逆向分析工作时就有规律可循,从而实现在短时间内从海量代码中找出自己所关心的技术细节。 软件体系结构在软件逆向工程中的应用 2 1.2 论文组织结构 本论文共分为五章。论文首先论述了软件逆向工程在软件工程中重要地位,介绍了软件体系结构在实现需求到设计的转换、提高软件质量问题方面的作用,然后根

20、据二者的关系得出将软件体系结构应用在逆向工 程中的意义。在这个基础上提出了论文的背景、目标和研究价值,引出了论文所作的主要工作内容。紧接着论文概述了论文调研中所 需要用到的相关技术,并通过基于过程开发的病毒程序和事件响应系统, 基于 面向对象 的软件开发的实际例子进行逆向分析,详细介绍及展示了如何将软件体系结构应用在软件逆向分析中。 论文具体安排如下: 第一章,论文首先论述了软件逆向工程在软件工程中重要地位,介绍了软件体系结构在实现需求到设计的转换、提高软件质量问题方面的作用,然后根据二者的关系得出将软件体系结构应用在逆向工程中的意义。从而提出了毕业论文的背 景、目标和研究价值。 第二章, 对

21、软件体系结构风格和软件逆向工程相关知识的介绍 。 第三章,详细介绍了 基于独立组件风格的逆向分析,结合 面向过程 开发 的病毒 和 事件驱动系统 实例 进行逆向分析 。 第四章,详细介绍了 基于调用返回风格的逆向分析,结合面向对象开发的软件实例进行逆向分析 。 第五章,最后论文总结了毕业论文所作的工作,并作了下一步展望。 第二章 软件体系结构风格和软件逆向工程概述 3 第二章 软件体系结构风格和软件逆向工程概述 2.1 软件体系结构 风格概述 软件技术的快速发展使得今天的软件开发越来越工程化,与之相应的工程技术也日趋成熟。软件体系结构作为一 门新兴的学科,通过提升软件复用粒度,改进软件工程化的

22、程度。软件体系结构定义了软件或计算系统的结构,它包括软件的构件、构件的外部可见属性以及它们之间的关系。下面对 5 种常见的体系结构风格进行简单的分析概述 3 4。 2.1.1 数据流风格 数据流是一种将数据从输入端显式的输送到输出端的体系结构风格。数据流风格的构件是数据的处理单元,连接件是连接处理单元的通道。数据流体系结构风格是由数据驱动的,数据在按照一定顺序排列好的构件上有序的流动。当有数据流经构件时,控制被激活。构件之间不共享任何状态信息,即一个构件不 知道上一个构件对数据进行了什么处理。 数据流风格包括批处理、管道过滤器、任务处理三种体系结构。 管道过滤器包括管道和过滤器两种构件。过滤器用于增量式的处理数据,它们之间不共享,数据在过滤器中以流到流的形式传输。管道用于连接过滤器,它是单方向的。当数据到来时,管道过滤器开始工作,直到数据传输完毕。 1. 数据流的优点: (1)构件之间不共享状态,降低了构件的复杂性; (2)支持构件复用; (3)支持并发执行; (4)系统易于维护。 2. 数据流的缺点: (1)不适合交互式系统; (2)需要处理同步问题; (3)解析输入输出的数据,增加了系统的复杂性;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。