逆向工程PPT课件
共43页
10
5、什么是底层软件
底层软件(也称为系统软件)是整个 软件体系基础软件(infrastructure)的 统称。
底层软件包括诸如编译器、链接器 (Linker)和调试器的开发工具,诸如操 作系统的基础软件,以及像汇编语言这样 的低级程序设计语言。
共43页
11
6、加密算法可以粗略地分为两类
加密算法可以粗略地分为两类:约 束算法(restricted algorithms)和 基于密钥的算法。
7、逆向工程分为几个阶段
(1)对早期程序进行大范围的观察,这 个阶段被称为系统级逆向;
(2)代码级逆向技术能为我们提供所选
定的代码块的详细信息。
共43页
12
8、逆向工具主要有那些类 (1)系统监控工具; (2)反汇编器; (3)调试器; (4)反编译器;
(3)后端负责将优化器输出的优化后的 代码转化为平台专用的二进制代码。
共43页
16
第三章 逆向工具
1、逆向方法有哪些?各有什么优点和缺 点?
通常来说,有两种基本的逆向方 法:离线分析(offline analysis)和 现场分析(live analysis)。
共43页
17
1、逆向方法有哪些?各有什么优点和缺 点?(续)
共43页
7
2、软件逆向工程分类
(1)从 已知软件 系统的 完整代码 出 发,生成对应系统的 结构 以及相关设 计 原理 和 算法思想 的 文档;
(2)从 没有源代码 的程序出发,生 成对应的 源程序、系统结构 以及相关 设计原理 和 算法思想 的 文档 等。
共43页
8
3、逆向工程在软件分析中的作用
(1)软件开发人员可以利用逆向技术发 掘如何实现与没有文档的或只有部分文档 软件的互操作;
(2)逆向可以用来确定诸如代码库甚至 于操作系统这样的第三方代码的质量;
(3)为了提高自己的技术,有时也可以 利用逆向技术从竞争方的产品中提取有价 值的信息。
共43页
9
4、与安全相关的逆向应用 (1)在恶意软件方面的应用; (2)对加密算法进行逆向应用; (3)在数字化权限管理方面应用; (4)在审核程序的二进制代码方面应用。
共43页
2
一、关于考查的报告(续)
4、程序可以是本地IA-32代码,也可以是 字节码,也可以使用现成的混淆器进行处 理并看处理后的结果;
5、报告目的意义;
(3)工具的选择及简介;
共43页
3
5、报告格式(续) (4)实验过程、步骤和结果;
(5)心得体会与收获。
6、其它要求
(1)标题为四号;(2)正文为小四; (3)图表要有编号和名称;(4)每页要 有页码;(5)行间距为1.5倍;(6)提 交时间为考试后的一天为截止日期;(7) 打印。
共43页
4
二、关于考试的内容复习
第一章 基础 1、逆向工程概念
逆向工程是从任何 人造 的东 西中提取知识或设计规划的过程。
4、编译器由几部分组成,每部分完成什 么功能。
一般的编译器包含三个基本的组件: 编译器的前端、优化器和编译器的后端。
(1)编译器的前端负责对源程序文本进 行译码、确保程序的语法正确且与语言的 规范一致;
共43页
15
4、编译器由几部分组成,每部分完成什 么功能。(续)
(2)优化器在保留程序原意的情况下对 它的各个方面进行改进;
《逆向工程》复习
一、关于考查的报告
二、关于考试的内容 三、题型
共43页
1
一、关于考查的报告
1、写一个篇幅不少于10页的报告;
2、自选任意一款软件,可以是商业软件、 开源软件、也可以是自己写的软件;
3、利用本课程的知识、相关的工具对上 述可执行程序进行逆向,看一下高阶视 角的程序和低阶视角的程序有哪些区别? 并试一下优化器的设置对它的影响;
内核模式调试器最强大的地方就是 设置底层断点的能力。
4、目前可用的两种虚拟机技术是 Microsoft公司的Virtual PC 和VMWare 公司的VMWare Workstation。
共43页
22
5、最常见的两个虚拟机架构是:运 行Java程序的Java虚拟机(JVM)和运 行应用程序的公共语 言运行时(CLR)。
(5)转储工具;
(6)修补工具。
共43页
13
第二章 底层软件
1、模块有几种形式,分别是什么?
模块有两种基本形式:静态库和动态 库,这两种形式可以组合起来构建程序。
2、数组、链表、树管理数据的优缺点。
3、控制流语句的基本形式有哪些?
(1)条件块;(2)切换块;(3)循环。
共43页
14
第二章 底层软件(续)
离线代码分析的缺点(与现场分 析相比)是:你需要更好的理解代码, 因为你无法看到程序所处理的数据以 及数据的流动。你必须猜测程序处理 的是哪些类型的数据,而这些数据又 是如何随着代码的执行流动的。
共43页
18
2、在逆向中主要有哪些工具?
(1)反汇编器;(2)调试器;(3)反 编译器;(4)系统监控工具;(5)修补 工具;(6)转储工具。
共43页
5
1、逆向工程概念(续)
逆向工程是了解软件“所作所为”的 一套最重要的技术和工具。正式地讲,逆 向工程是“通过分析目标系统以识别系统 的组件以及这些组件之间的相互关系并创 建该系统另一种形式的表示或更高级的抽 象过程”。
共43页
6
1、逆向工程概念(续)
软件逆向工程融合了以下技术: 密码破解(code breaking)、猜 字谜(puzzle solving)、程序设 计和逻辑分析。
3、调试器分几类?各有什么特点?
在现代操作系统中,可以将调试器 粗略地分为两种不同的风格:用户模式 调试器和内核模式调试器。
共43页
19
3、调试器分几类?各有什么特点? (续)
用户模式调试器的缺点是:仅能 观察一个进程,而且仅能观察这个进 程中的用户模式代码。受限于单个进 程意味着你必须清楚地知道你想对哪 个进程实施逆向。
共43页
20
3、调试器分几类?各有什么特点?(续)
想获得系统的整体面貌而不是某个 特定的进程时,你就需要使用内核模式 调试器。与用户模式调试器不同,内核 模式调试器不是运行在操作系统之上的 程序,它是与系统的内核处于同等地位 的组件,你能在任意给定的时刻停止整 个系统的运行并观察它。
共43页
21
3、调试器分几类?各有什么特点?(续)