欢迎光临
奥鹏作业辅导

南开19秋《逆向工程》课程期末复习资料

来源:奥鹏远程教育   日期: 作者:奥鹏作业辅导
可做全部院校网课作业、课程代看、网考、论文辅导!答案请加微信:xx99ttt 或QQ:1514133056

南开19秋《逆向工程》课程期末复习资料满分答案

《逆向工程》课程期末复习资料
 
《逆向工程》课程讲稿章节目录:
第1章  基础知识
1.1 逆向工程
1.2逆向分析技术
1.3文本字符
1.4 字节序
1.5Win32 API函数
1.6Windows消息机制
第2章  动态分析技术
2.1  OllyDbg的界面
2.2  OllyDbg的配置
2.3Olly加载程序
2.4  OllyDdg的INT3断点和硬件断点
2.5  OllyDdg内存断点
2.6  OllyDbg消息断点
2.7  OllyDbg条件断点
2.8  OllyDbg插件
2.9  OllyDbg的跟踪
2.10 WinDbg调试器
2.11 Windbg符号文件
2.12 WinDbg调试过程
第3章  静态反汇编
3.1 文件类型分析
3.2 反汇编引擎
3.3 IDA Pro加载可执行文件
3.4 IDA Pro的窗口
3.5 IDA Pro导航
3.6 IDA Pro交叉引用
3.7 IDA Pro函数分析
3.8 IDA Pro识别数组、结构体
3.9 IDA Pro增强反汇编
3.10 十六进制工具与静态分析技术应用实例
第4章  逆向分析技术
4.1  函数的识别
4.2识别变量
4.3识别IF分支结构
4.4识别switch分支结构
4.5  识别循环
4.6数学运算符
4.7虚函数
4.8 64软件逆向技术
第5章  演示版保护技术
5.1  序列号保护方式
5.2  警告窗口
5.3时间限制
5.4  菜单功能限制
5.5  KeyFile保护
5.6  网络验证
5.7  光盘检测
5.8  只运行一个实例
第6章  Windows内核基础
6.1内存空间、权限空间布局
6.2Windows与内核启动过程
6.3Windows R3与R0通信
6.4内核函数和内核驱动模块
6.5内核对象
6.6 SSDT
6.7 TEB和PEB
第7章  Windows下的异常处理
7.1  异常处理的基本概念
7.2  SEH的概念及基本知识
7.3SEH异常处理程序原理及设计
7.4  向量化异常处理
7.5  x64平台上的异常处理
7.6 异常处理的实际应用
第8章  PE文件格式
8.1 PE的基本概念
8.2  PE文件头
8.3  区块
8.4 输入表
8.5  绑定输入、输出表
8.6  基址重定位
8.7 资源
8.8  TLS初始化、调试载入目录、 延迟载入数据_
8.9  程序异常数据NET头部
8.10编写PE编辑工具
 
一、客观部分:(单项选择、多项选择、判断)
★考核知识点: 基础知识
参见讲稿章节:1.1
1.在关于逆向工程(reverse engineering)的描述中,正确的是( )
A.从己经安装的软件中提取设计规范
B.按照“输出—>处理—>输入”的顺序设计软件
C.用硬件来实现软件的功能
D.根据软件处理的对象来选择开发语言和开发工具
2.以下说法错误的是()
A.逆向工程是指根据已有的产物和结果,通过分析来推导出具体的实现方法。
B.在软件汉化和软件解密的过程中,首要问题是对被汉化和解密的软件进行分析。
C.通过静态分析我们可以真正了解软件中各个模块的技术细节。
D.对软件分析来说,静态分析只是第一步,动态跟踪才是分析软件的关键。
附(考核知识点解释):
逆向工程(Reverse Engineering)是指根据已有的产物和结果,通过分析来推导出具体的实现方法。对软件来说,“可执行程序—反编译—源代码” 的过程就是逆向工程。 逆向工程的内容可以分为如下3类。
(1)软件使用限制的去除或者软件功能的添加。
(2)软件源代码的再获得。
(3)硬件的复制和模拟。
 
参见讲稿章节:1.3
1.判断题:计算机中储存的信息都是用二进制数表示的,但如果要处理文本,并不需要先把文本转换为相应的二进制数。()
2.判断题:Unicode是ASCII字符编码的一个扩展,只不过在Windows中用2字节对其进行编码。()
附(考核知识点解释):
文本字符
计算机中储存的信息都是用二进制数表示的,屏幕上显示的字符都是二进制数转换之后的结果。如果要处理文本,就必须先把文本转换为相应的二进制数。在学习过程中,我们会与各类字符打交道。这些字符在Windows里扮演着重要的角色。
字符集
字符集是一个系统支持的所有抽象字符的集合。
字符是各种文字和符号的总称:
文字
标点符号
图形符号
数字
IP地址
字节存储顺序
计算机领域在描述“关于字节该以什么样的顺序传送的争论”时引用了“endian”一词,翻译为“字节序”,表示数据在存储器中的存放顺序,主要分为大端序(Big-endian)和小端序(Little-endian ),其区别如下。
Big-endian:高位字节存入低地址,低位字节存入高地址。
Little-endian:低位字节存入低地址,高位字节存入高地址。
Intel处理器使用的是小尾方式存储(Little Endianness)
低位字节存入低地址,高位字节存入高地址
 
参见讲稿章节:1.6
1.判断题:Windows是一个消息(Message)驱动式系统。Windows消息提供在应用程序与应用程序之间、应用程序与Windows系统之间进行通信的手段。
附(考核知识点解释):
Windows消息机制
Windows是一个消息(Message)驱动式系统。Windows消息提供在应用程序与应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息触发,通过对消息的响应和处理完成。Windows系统中有两种消息队列:一种是系统消息队列;另一种是应用程序消息队列。计算机的所有输入设备由Windows监控。当一个事件发生时,Windows先将输入的消息放入系统消息队列,再将输入的消息复制到相应的应用程序队列中,应用程序中的消息循环在它的消息队列中检索每个消息并发送给相应的窗口函数。一个事件从发生到到达处理它的窗口函数必须经历上述过程。值注得意的是消息的非抢先性,即不论事件的急与缓,总是按到达的先后排队(一些系统消息除外),而这可能导致一些外部实时事件得不到及时的处理。
 
★考核知识点: OllyDdg调试器
参见讲稿章节:2.1
1. 判断题:OllyDbg只能进行动态调试。()
2. 判断题:OllyDbg是调试Ring 0级程序的首选工具。()
OllyDbg调试器
附(考核知识点解释):
OllyDbg(简称“OD”)是由Oleh Yuschuk ( )编写的一款具有可视化界面的用户模式调试器。OllyDbg结合了动态调试和静态分析,具有GUI界面,非常容易上手,对异常的跟踪处理相当灵活。这些特性使OllyDbg成为调试Ring 3级程序的首选工具。它的反汇编引擎很强大,可识别数千个被C和 Windows频繁使用的函数,并能将其参数注释出来。它会自动分析函数过程、循环语句、代码中的字符串等。
 
★考核知识点: OllyDdg的INT3断点和硬件断点
1. 判断题:INT3断点不改变原程序的机器码。()
2. 判断题:硬件断点最多可以设置4个。()
参见讲稿章节:2.4
附(考核知识点解释):
断点
断点(Breakpoint)是调试器的一个重要功能,使执行的程序中断在指定的地方,从而方便对其进行分析。
INT3断点
INT 3断点指令,其机器码是OxCC,也常被称为“CC指令”。当被调试进程执行INT 3指令导致一个异常时,调试器就会捕捉这个异常,从而停在断点处,然后将断点处的指令恢复成原来的指令。
使用INT 3断点的优点是可以设置无数个断点,缺点是改变了原程序机器码,容易被软件检测到。
硬件断点
硬件断点和DRx调试寄存器有关。硬件断点的原理是使用DR0, DR1, DR2, DR3设定地址,并使用DR7设定状态,因此最多设置4个断点。硬件执行断点与CC断点的作用一样,但因为硬件执行断点不会将指令首字节修改为“CC”,所以更难检测。
 
 
★考核知识点: OllyDdg内存断点
参见讲稿章节:2.5
选择题:OllyDbg可以设置()个内存断点
A.1个       B.4个     C.5个     D.7个
附(考核知识点解释):
内存断点
OllyDbg可以设置内存访问断点或内存写入断点,原理是对所设的地址的内存页设置不可访问或不可写属性,这样当内存访问或写入的时候就会产生异常。OllyDbg截获异常后,比较异常地址是不是断点地址,如果是就中断,让用户继续操作。
因为每次出现异常时都要通过比较来确定是否应该中断,所以内存断点会降低OllyDbg的执行速度。OllyDbg只能设置1个内存断点。
 
★考核知识点: WinDbg调试器
参见讲稿章节:2.10
判断题:WinDbg最强大的地方还是命令行,通常结合GUI和命令行进行操作。()
多选题:WinDbg支持哪些调试()
A. 以打开、附加的方式调试应用程序
B. 可以分析Dump文件
C. 可以进行远程调试
D. 内核调试
 
★考核知识点: 文件类型分析
参见讲稿章节:3.1
 
单选题:IDA的原始嵌入式脚本语言叫作()。
A.FLIRT B.FLAIR C.IDC D.Perl
单选题:IDA分析数据时,数据类型可以在()之间转换
A.db、dw、df B.db、dw、dd C.db、dd、df D.dw、dd、df
多选题:下列说法正确的是()
A. PEiD这类文件分析工具是利用导入函数搜索来完成识别工作的
B. 开发语言都有固定的启动代码,利用这一点就可以识别程序是由何种语言编译的
C.被加密程序处理过的程序中会留下加密软件的相关信息,利用这一点就可以识别程序是被何种软件加密的
D. PEiD提供了一个扩展接口文件userdb.txt,用户可以自定义一些特征码,这样就可以识别新的文件类型了
附(考核知识点解释):
文件类型分析
逆向分析程序的第一步就是分析程序的类型,了解程序是用什么语言编写的或用什么编译器编译的,以及程序是否被某种加密程序处理过,然后才能有的放矢,进行下一步工作。这个分析过程需要文件分析工具的辅助。常见的文件分析工具有PEiD , Exeinfo PE等。此类工具可以检测大多数编译语言、病毒和加密软件。
 
★考核知识点:反汇编引擎
参见讲稿章节:3.2
单选题:以下对x86架构指令集支持最全的反汇编引擎是()
A. ODDisasm B. BeaEngine C. Udis86 D. Capstone
多选题:下列是反汇编引擎的有()
A.ODDisasm B.BeaEngine C.Udis86 D.Keystone
判断题:OllyDbg自带的反汇编引擎ODDisasm,优点是具有汇编接口(即文本解析,将文本字符串解析并编码成二进制值),这个特性曾经独树一帜,且支持64位指令的汇编和反汇编。()
判断题:Keystone和Capstone是同一系列的引擎,由同一维护者主导开发。Capstone主要负责跨平台多指令集的反汇编工作,而Keystone主要负责跨平台多指令集的汇编工作。与O11yDbg的汇编器一样,Keystone也只支持文本汇编,不支持像AsmJit那样的函数式汇编。()
附(考核知识点解释):
反汇编引擎概述
在安全软件和保护软件的开发过程中经常会用到汇编引擎和反汇编引擎,例如OllyDbg、IDA、VMProtect、加壳软件和反编译器等。反汇编引擎的作用是把机器码解析成汇编指令。
常用的反汇编引擎有ODDisasm、BeaEngine、Udis86、Capstone,汇编引擎有ODAssemhler、Keystone、AsmJit。
 
★考核知识点: IDA Pro加载可执行文件
参见讲稿章节:3.3
单选题:IDA是按()装载PE文件的
A.交叉参考 B.参考重命名C.格式化指令操作数D.代码和数据转换
多选题:下列关于IDA有关说法正确的是()
A. IDA最主要的特性是交互和多处理器。用户可以通过对IDA的交互来指导IDA更好地进行反汇编。
B. IDA是按区块装载PE文件的,例如.text(代码块)、.data(数据块)、.rsrc(资源块)、.idata(输入表)和.edata(输出表)等
C. IDA反汇编所消耗的时间与程序大小及复杂程度有关,通常需要等待一段时间才能完成。
D.IDA可以格式化指令使用的常量,因此应尽可能使用符号名称而非数字,从而使反汇编代码更具可读性。IDA根据被反汇编指令的上下文、所使用的数据作出格式化决定。对其他情况,IDA一般会将相关常量格式化成一个十进制常量。
 
★考核知识点: IDA Pro导航
参见讲稿章节:3.5
单选题:IDA PRO简称IDA,是一个交互式()工具
A.调试 B.汇编 C.编译 D.反汇编
 
★考核知识点: IDA Pro交叉引用
参见讲稿章节:3.6
单选题:通过()可以知道指令代码的相互调用关系
A.交叉参考 B.参考重命名 C.格式化指令操作数 D.代码和数据转换
★考核知识点: IDAPro函数分析
参见讲稿章节:3.7
多选题:IDA反汇编代码可以输出()格式文件
A.MAP B.ASM C.EXE D.DIF
 
★考核知识点: IDAPro识别数组、结构体
参见讲稿章节:3.8
判断题:IDA有着较强的数组聚合能力。它可以将一串数据声明变成一个反汇编行,按数组的形式显示,从而简化反汇编代码清单。()
判断题:IDA在进行反汇编的时候能正确区分数据和代码。()
 
★考核知识点: IDAPro增强反汇编
参见讲稿章节:3.9
判断题:进人指令汇编修改状态,jne指令共2字节,因此用2个nop指令代替,这种跳过算法分析直接修改关键跳转指令使程序注册成功的方法,通常被解密者称为“爆破法”。()
 
★考核知识点: 十六进制工具与静态分析技术应用实例
参见讲稿章节:3.10
单选题:()十六进制工具提供了文件比较功能
A.HexWorkshop B.WinHex C.Hiew D.ApateDNS
多选题:常用的十六进制工具有()
A.HexWorkshop B.WinHex C.Hiew D.ApateDNS
 
参见讲稿章节:4.1
多选题:在以下的传递方式中,()是函数传递参数的方式
A栈方式
B队列方式
C寄存器方式
D通过全局变量进行隐含参数传递
单选题:虚函数的地址是在()时候确定的
A程序编写时
B编译程序时
C调用即将进行时
D程序执行后
判断题:局部变量是函数内部定义的一个变量,其作用域和生命周期作用于整个程序。()
判断题:调用虚函数时,程序先取出虚函数表指针,得到虚函数表的地址,再根据这个地址到虚函数表中取出该函数的地址,最后调用该函数。()
 
参见讲稿章节:4.5
单选题:以下先执行语句块,再进行表达式判断的循环语句是。()
A do循环
B while循环
C for循环
D 都不是
判断题:程序在运行时,先调用main函数执行用户编写的代码,再执行初始化函数代码。()
 
参见讲稿章节:4.7
判断题:C++的三大核心机制是封装、继承、多态,虚函数就是多态的一种体现。VC++实现虚函数的方式是虚表。()
附(考核知识点解释):
C++的三大核心机制是封装、继承、多态,虚函数是多态的一种体现,对于面向对象思想设计的软件,虚函数是软件逆向分析还原面向对象代码的重要手段。
VC++实现虚函数的方式是虚表,如果一个类中有虚函数,编译器就会为这个类生成一个虚表,不同的类,虚表是不相同的,相同的类对象,共享一个虚表。
 
★考核知识点: 序列号保护方式
参见讲稿章节:5.1
判断题:软件验证序列号,其实就是验证用户名和序列号之间的数学映射关系()
 
★考核知识点: 警告窗口
参见讲稿章节:5.2
判断题:若要完全去除警告窗口,只需找到创建该窗口的代码并将其跳过。()
判断题:在另外一些情况下,对话框不是以资源形式存在的,通过常用断点就可以拦截不下来。()
多选题:去除警告窗口常用的3种方法是()

修改程序的资源

静态分析

动态分析

扫描二维码获取答案

热门文章

  • 东师社会保障制度18秋在线作业3答案

  • 社会保障制度18秋在线作业3-0002 试卷总分:100 得分:0 一、 单选题 (共 15 道试题,共 37 分) 1.下列属于福利国家的是 A.美国 B.德国 C.英国 D.新加坡 2.国际劳工组
  • 19春北理工《操作系统》在线作业[答案]

  • 北理工《操作系统》在线作业-0004 试卷总分:100 得分:0 一、 单选题 (共 20 道试题,共 40 分) 1.在下列文件的物理结构中,不利于文件长度动态增长的是( )

猜你喜欢

  • 北语17秋《会计信息系统》作业4答案

  • 17秋《会计信息系统》作业4 试卷总分:100 得分:0 一、 单选题 (共 9 道试题,共 36 分) 1. ()单把某一项资金拿出来,方便管理和使用。 A. 基本存款账户 B. 一般