还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《逆向工程》课程期末复习资料
一、客观部分(单项选择、多项选择、判断)★考核知识点基础知识参见讲稿章节
1.
11.在关于逆向工程(reverse engineering)的描述中,正确的是(A)A.从己经安装的软件中提取设计规范B.按照“输出一>处理一>输入”的顺序设计软件C.用硬件来实现软件的功能D.根据软件处理的对象来选择开发语言和开发工具二以下说法错误的是()L逆向工程是指根据已有的产物和结果,通过分析来推导出具体的实现方B.在软件汉化和软件解密的过程中,,要问题是对被汉化和解密的软件进行C.通过静态分析我们可以真正了解软件中各个■块的技术细节.D.对软件分析■说,静态分析只是第一步,动态跟踪才是分析软件的关键附(考核知识点解释)逆向工程(Reverse Engineering)是指根据已有的产物和结果,通过分析来推导出具体的实现方法对软件来说,“可执行程序一反编译一源代码”的过程就是逆向工程逆向工程的内容可以分为如下3类
(1)软件使用限制的去除或者软件功能的添加
(2)软件源代码的再获得
(3)硬件的复制和模拟参见讲稿章节
1.
31.判断题计算机中储存的信息都是用二进制数表示的,但如果要处理文本,并不需要先把文本转换为相应的二进制数(F)
2.判断题Lnicode是ASCII,符编码的一个扩展,只不过在Windows中用2字节对其进行编码()面向对象思想设计的软件,虚函数是软件逆向分析还原面向对象代码的重要手段VC++实现虚函数的方式是虚表,如果一个类中有虚函数,编译器就会为这个类生成一个虚表,不同的类,虚表是不相同的,相同的类对象,共享一个虚表★考核知识点序列号保护方式参见讲稿章节
5.1判断题软件验证序列号,其实就是验证用户名和序列号之间的数学映射关系★考核知识点警告窗口参见讲稿章节
5.2判用i典普要到创建该窗口的代码并将其跳过.■________________判断题在另外一些情况下,对话框不是以资源形式存在的,通过常用断点就可以拦截不下来多选题去除警告窗口常用的3种方法是ABC A.修改程序的资源B.静态分析C.动态分析D.放置不管★考核知识点时间限制参见讲稿章节
5.3半5世演示版软件一般都有使用时间的限制,例如试用30天,超过试用期也能运行.多选题用于获取时间的API函数有ABC A.GetSystemTime B.GetLocalTime C.GetFileTime D.timeGetTime★考核知识点菜单功能限制参见讲稿章节
5.4选择题允许或禁止指定的菜单条目的API函数是A A.EnableMenultem函数B.Enablewindow函数C.GetTickCount函数D.timeGetTime0函数★考核知识点KeyFile保护参见讲稿章节
5.5选择题确定文件是否存在的API函数是A.IindIirstlileA函数CreateFileA GetFileAttributesAD.ReadFile函数让抒典打开文件以获得其句柄的API函数是FindFirstFileA函数CreateFileA GetFileAttributesAReadFi le函数选择题允许或禁止指定窗口的API函数是A A.EnableMenultem函数B.Enablewindow函数C.GetTickCount函数D.timeGetTime函数★考核知识点内核空间、权限空间布局参见讲稿章节
6.1单选题:CPU设计者将CPU的运行级别从内向外分为4个,依次为RO,Rl,R2,R3,()拥有最高执行权限A.RO B.Ri C.R2D.R3单选题用户的应用程序(就是用Visual C++等工具开发的应用程序)也是运行在(D)级上的A.RO B.Rl C.R2D.R3★考核知识点Windows与内核启动过程参见讲稿章节
6.2「I*冬甬对Windows的启动过程包括的以下儿个阶段的顺序进行排列
(1)初始化启动阶段
(2)启动自检阶段
(3)Boot加载阶段
(4)检测和配■硬件阶段A3412B2341C2134D3214判断题Windows与内核启动过程中在Bool加载阶段,先对mid,进行设置,然后从启动分区加载ntldro()附(考核知识点解释)Windows的启动过程包括以下几个阶段
(1)启动自检阶段在打开电源时,计算机开始自检过程,从BIOS中载入必要的指令,然后进行一系列的自检操作,进行硬件的初始化检查(包括内存、硬盘、键盘等),同时在屏幕上显示信息
(2)初始化启动阶段自检完成后,根据CMOS的设置,BIOS加载启动盘,将主引导记录(MBR)中的引导代码载入内存接着,启动过程由MBR来执行启动代码搜索MBR中的分区表,找出活动分区,将第1个扇区中的引导代码载入内存引导代码检测当前使用的文件系统,查找ntldr文件,找到之后将启动它BIOS将控制权转交给ntldr,由ntldr完成操作系统的启动工作(注意:Windows7与此不同,使用的是Bootmgr)
(3)Boot加载阶段在这个阶段,先从启动分区加载ntldr,然后对ntldr进行如下设置
①设置内存模式如果是x86处理器,并且是32位操作系统,则设置为“32-bit flatmemory mode”;如果是64位操作系统,并且是64位处理器,则设置为64位内存模式
②启动一个简单的文件系统,以定位boot.ini ntoskrnlHal等启动文件
③读取boot,ini文件
(4)检测和配置硬件阶段在这个阶段会检查和配置一些硬件设备,例如系统固件、总线和适配器、显示适配器、键盘、通信端口、磁盘、软盘、输入设备(例如鼠标)、并口、ISA总线上运行的设备等
(5)内核加载阶段ntldr将首先加载Windows内核Ntoskrnl.cxe和硬件抽象层(HAL)HAL会对硬件底层的特性进行隔离,为操作系统提供统一的调用接口接下来ntldr从注册表的11KEY_L0CAL_MACHlNE\System\CurrentControlSet键下读取这台机器安装的驱动程序,然后加载驱动程序初始化底层设备驱动,在注册表的HKEY_LACAL_MACHINE\System\CurrentControlSet\Services键下查找Start键的值为0和1的设备驱动
(6)Windows的会话管理启动驱动程序加载完成,内核会启动会话管理器这是一个名为smss.exe的程序,是Windows系统中第1个创建的用户模式进程,其作用如下.创建系统环境变量.加载win32k.sys,它是Windows子系统的内核模式部分.启动csrss.exe,它是Windows子系统的用户模式部分.启动win logon,exe.创建虚拟内存页面文件.执行上次系统重启前未完成的重命名工作PendingFileRename7登录阶段Windows了系统启动的winlogon,cxe系统服务提供对Windows用户的登录和注销的支持,可以完成如下工作.启动服务子系统services,exe,也称服务控制管理器SCM.启动本地安全授权LSA过程Isass.exe.显示登录界面登录组件将用户的账号和密码安全地传送给LSA进行认证处理如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问8Windows7和Windows XP启动过程的区别•BIOS通过自检后,将MBR载入内存并执行,引导代码找到启动管理器Bootmgr
0.Bootmgr寻找活动分区boot文件夹中的启动配置数据BCD文件,读取并组成相应语言的启动菜单,然后在屏幕上显示多操作系统选择画面.选择Windows7系统后,Bootmgr就会读取系统文件windows\systcm32\winload.exe,并将控制权交给win load,exec.Winload,exe加载Windows7的内核、硬件、服务等,然后加载桌面等信息,从而启动整个Windows7系统★考核知识点Windows R3与R0通信参见讲稿章节
6.3单选题Windows内核部分会调用一些内核层的函数这些函数都以固定的前缀开始,分别属于内核中不同的管理模块,其中“Ps”属于哪个模块C A管理层B核心层C进程管理D安全管理⑴析也Endows内核驱动模块是内核的重要组成部分,虽然有微软自己开发的内核驱动,但是没有第三方开发的内核驱动附考核知识点解释Windows分为应用层与内核层当应用程序调用一个有关1/0的API例如WriteFile时,实际上这个API被封装在应用层的某个DLL库例如kernel
32.dll和user
32.dll)文件中而DLL动态库中的函数的更底层的函数包含在ntdll.dll文件中ntdll.dll中的Native API是成对出现的,分别以“Nt”和“Zw”作为前缀即ZwCr cateFile函数和NtCreateFilc函数,只是名字不一样Windows API函数调用ntdll.dll中的Native API函数Native API函数调用中断int2E或者SysEnter指令,从R3进入R0内核ntoskrnl.exe中的SSDT,有与ntdll.dll+Native API一一对应的系统处理服务函数,即内核态的Nt*系列函数★考核知识点内核函数与内核驱动模块参见讲稿章节
6.4判断题SSDT的全称是系统服务描述符表,SSDT用于处理应用层通过kernel
32.dll下发的各个API操作请求(F)★考核知识点内核对象参见讲稿章节
6.5判断题TEB与PEB不一样,在系统内核空间中,而不是在应用层中的结构(F)判断题PEB存在于用户地址空间中,记录了进程的相关信息每个进程都有自己的PEB信息(T)★考核知识点SSDT参见讲稿章节
6.6判断题WinDbg有限制地支持本地内核调试,只能查看一些重要的系统数据结构,不能通过下断点的方式进行调试(F)判断题同用WinDbg调试内核有多种方法例如,WinDbg通过USB、1394火线、COM及网络把两台机器连接起来()★考核知识点TEB与PEB参见讲稿章节
6.7判断题x64系统内核驱动需要验证数字签名,但是直接运行没有数字签名的驱动的操作也能成功F乳断典血载内核驱动的方法很多,可以使用instdrv.CXC工具来加载★考核知识点异常处理的基本概念参见讲稿章节
7.1选择题:CPU设计者将CPU的运行级别从内向外分为4个,依次为RO,Rl,R2,R3,D拥有最高执行权限A.R0B.R1C.R2D.R3选择题用户的应用程序就是用Visual C++等工具开发的应用程序也是运行在D级上的A.R0B.R1C.R2D.R3选择题除了CPU能够捕获一个事件并引发一个硬件异常外,在代码中可以主动引发一个软件异常,这只需调用A函数A.RaiseExeeption B.ntIRtIDispatchException C.KeBugCheckEx D.KiDispatchExccption★考核知识点SEH的概念及基本知识参见讲稿章节
7.2判断题SEH机制只能在用户模式下使用.判断题|刖,.们支持川户枳,•顷内松项■I★考核知识点向量化异常处理参见讲稿章节
7.4判断姻在Windows的任何版木中都有向量化异常处理()★考核知识点x64平台上的异常处理参见讲稿章节
7.5判断题卜64I,台上原生x64程序的异常分发流程与x86平台上不是,♦一致的()★考核知识点PE文件格式参见讲稿章节
8.1判断题PE文件是作为单一内存映射文件被载人内存的()判断题每个PE文件都是以一个DOS程序开始的,有了它,一旦程序在DOS下执行,DOS就能识别出这是一个有效的执行体(T)参见讲稿章节
8.2单近题IMAGE FILEHEADER结构的情况时,以下,段中哪个代表可执行文件的日标CP,类型A NumbcrOfScctions BMachine CTimeDateStamp DCharacteristics参见讲稿章节
8.3判断题区块的大小是要对齐的有两种对齐值,一种用于磁盘文件内,另一种用于内存中(T)4断典链接器的并不能够合并区块()参见讲稿章节
8.5选择题数据目录表DataDi reclory的第个成员指向绑足输人,绑定输入以一个IMAGE BOUNDIMPORT DESCRIPTOR结构的数组开始A10B11C12D13选择题|俞出^Export Table的主要内容足•个表格,其中包括函数名称、输出序数等♦数是指定DLL中某个函数的位数字,在所指向的DLL里是独一无二的A13B14C15D16
二、主观部分★考核知识点基础知识参见讲稿章节
1.2简答题简述大端序和小端序大端数据的低位保存在内存中的高地址中,数据的高位保存在内存的低地址中小端数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中参见讲稿章节
1.3简答题简单地说,虚拟内存的实现方法和过程当一个应用程序执行时,操作系统就会创建一个进程,并给该进程分配2GB的虚拟地址不是内存,知识地址虚拟内存地址管理器将应用程序的代码映射到那个应用程序的虚拟地址的某个位置,并把当前需要的代码读入物理地址如果使用DLL,DLL也会被映射到进程的虚拟地址空间中,在需要的时候才会被读入物理内存其他项目数据,堆栈等的空间是从物理内存中分配的,并映射到虚拟地址空间中应用程序通过使用其虚拟地址空间中的地址开始执行然后,虚拟内存管理器把每次内存访问到物理位置总的来说应用程序不会直接访问物理地址虚拟内存管理器通过虚拟地址的访问请求来控制所有的物理地址访问每个应用程序都有独立的4GB寻址空间,不同应用程序的地址空间是彼此隔离的DLL程序没有“私有”空间,他们总是被映射到其他应用程序的地址空间中,作为其他应用程序的一部分运行其原因是如果DLL不与其他应用程序处于同一个地址空间,应用程序就无法调用它使用虚拟内存的好处是简化了内存的管理,弥补了物理内存的不足,可以防止多任务环境下应用程序之间的冲突版权声明本文为CSDN博主FnocbtmJ的原创文章,遵循CC
4.0BY-SA版权协议,转载请附上原文出处链接及木声明原文链接https://blog.csdn.net/nocbtm/article/dctails/88391264★考核知识点OllyDdg调试器参见讲稿章节
2.1填空题内存数据窗II输入(),即可查看rdx指向的,符串•填空题,反汇编窗「I选中任意的寄存器、地址、函数,按(),也可以跳转到相应的目标地址处.侦空哭通过()菜单可以打开其他子窗口,例如反汇编窗旦^存器窗曰、内存窗口等简答题如何快速回到当前程序领空?CTR+F9简答题OllyDbg如何修改EIP找到您要设置EIP的位置,右键单击并选择MNew OriginHere”这会将EIP重置为新地址您可以通过检查右上角的寄存器来确认这一点除了上面的回复,EIP基本上是指向当前执行行的位置的指针它用于记录程序在内存中执行的指令
3.单选题[Jnicode是ASCH字符编■的一个扩展,ft Windows中Unicode用个字节对字符进行编码附考核知识点解释文本字符计算机中储存的信息都是用二进制数表示的,屏幕上显示的字符都是二进制数转换之后的结果如果要处理文本,就必须先把文本转换为相应的二进制数在学习过程中,我们会与各类字符打交道这些字符在Windows里扮演着重要的角色字符集字符集是一个系统支持的所有抽象字符的集合字符是各种文字和符号的总称文字标点符号图形符号数字IP地址字节存储顺序计算机领域在描述“关于字节该以什么样的顺序传送的争论”时引用了“endian”一词,翻译为“字节序”,表示数据在存储器中的存放顺序,主要分为大端序Big-endian和小端序Little-endian,其区别如下Big-endian:高位字节存入低地址,低位字节存入高地址Little-endian:低位字节存入低地址,高位字节存入高地址Intel处理器使用的是小尾方式存储Little Endianness低位字节存入低地址,高位字节存入高地址填空题OllyDbg的设置项在(选项)菜单里,有(界面)选项和(调试)选项等这些选项配置都保存在(ollydbg.ini)文件里填空题UDD文件是OllyDbg的工程文件,用于保存当前调试的一些状态,例如(断点)、(注释)等,以便下次调试时继续使用填空题OllyDbg调用()函数创建可执行文件的进程填空题附加到一个正在运行的进程,此刻0IlyDbg会立即暂停这个程序以及它所有的(线程);被附加的程序会徊停在\idll.dll的()处填空题在OllyDbg中可以使用(Breakpoint)命令或者(F2)快捷键来设置/消断点★考核知识点OllyDdg内存断点参见讲稿章节
2.5简答题内存断点的原理?内存读写断点的实现,众所周知是把相关内存页属性设置为PAGE.NOACCES8,这样当此页内内存被读写的时候会有异常传给调试器但异常传给调试器以后的事,就很少有资料说起了,可能我比较孤陋寡闻,研究了儿天才搞明白,原来当异常传给调试器时候,debugee进程被挂起,调试器把内存页属性重新修改同去,同时设置一个单步调试断点这样debugee进程才可以正常执行过去,否则会一直被挂起因为被设置了单步调试断点,所以执行一个指令就再次挂起,交给调试器去处理这时候调试器把页面属性重新修改为PAGE_NOACCESS就可以了★考核知识点:反汇编引擎参见讲稿章节
3.2简答题简答题Capstone介绍★考核知识点:反汇编引擎参见讲稿章节
3.2简答题交叉引用的概念交叉引用是对Microsoft Word文档中其他位置的内容的引用,例如,可为标题、脚注、书签、题注、编号段落等创建交叉引用创建交叉引用之后,可以改变交叉引用的引用内容例如,可将引用的内容从页码改为段落编号以Word2003软件为例介绍交叉引用的使用方法第1步,首先要确定插入点在合适的位置输入“(返回)”字样,并将光标置于“返回”的后面然后依次单击“插入—“引用”一>“交叉引用”菜单命令第2步,接着选择引用内容在打开的“交叉应用”对话框中,单击“引用类型”下拉列表框右侧的下拉按钮,在打开的下拉列表中看到,Word可以对编号项、标题、书签、脚注、尾注、表格、公式和图表等内容进行引用此时选择“标题”选项,“引用内容”中的默认内容为“标题文字”,然后从“引用哪一个标题”中选择“第一部分内容摘要”,建立-•个返回“内容摘要”的引用最后依次单击“插入/关闭”按钮即可建立引用第3步,最后测试引用的效果建立引用之后会将指定的引用内容自动插入光标停留处,按住“Ctrl”键的同时单击此处即可返回到目标位置按照文档要求在文中建立多个交叉引用,这样可以大大方便文档浏览⑴附(考核知识点解释)交叉引用,在IDA Pro中被称为XREF,可以告诉你函数在何处被调用,或者一个字符串在何处被使用★考核知识点IDA Pro增强反汇编参见讲稿章节
3.9简答题FLIRT介绍★考核知识点逆向分析技术参见讲稿章节:
4.1简答题什么是逆向分析技术?逆向分析涉及到很多学科设计法医学,侦查学,生物学,物理化学学,电子机械,编程硬件,以及各种的文化知识,甚至是心理学哲学逻辑学等都可能涉及到逆向分析可以说,逆向分析是测定分析事物的可能的一个很重要的方法例子
①分析事物体系的结构
②推理某个东西的发展情况
③创造设计一个新产品★考核知识点序列号保护方式参见讲稿章节
5.1简答题序列号保护机制都有哪些种?四种基本方法将用户名等信息作为自受虽,通过函数F变挽之后得到注册码;通过注册码验证用户名的正确性;通过对等函故检查注册码;同时将用户名和注册码作为自知(采用二元函故)・序冽号=F(用户名)攻击序列号保护机制常用的api(GetWindowsTextA(W)x GetDlgltemTextA(W)、GetDlgltemlnt.hmemcpy)简答世序列号保护机制的逆向分析方法.★考核知识点时间限制参见讲稿章节
5.3简答题时间限制程序大概分为哪儿类,都是什么?筒彳q时间限制的软件,如果考虑得比较周全,软件最少要保存哪些时间★考核知识点菜单功能限制参见讲稿_________________________________________________________简答题的部分选项是•色的,无法使用.这种功能受限的程序一般分哪几种?★考核知识点内核空间、权限空间布局参见讲稿章节
6.1填空题现代操作系统一般分为(AA制)和(夹鼻子的方式)两部分削:简要谈谈现代操作系统的应用层和内核层,★考核知识点Windows与内核启动过程参见讲稿章节
6.2简答题:Windows7和Windows XP启动过程的区别window是微软公司2009最新发布的操作系统,是pc系统进入全3D时代的标志,系统的安全性和美观性较之vista更强更棒,同时也因为它是个新系统所以它的软件兼容性不强,暂时无法运行一些专业的软件,当然如果你是个普通用户,平时就是上个网聊个QQ什么的,那么你就可以使用它了,一些常用的软件他是兼容的传说中window7的虚拟机技术是旗舰版才有的,同时对硬件的要求也不低,所以一般不要开启,那个本身就是为了解决我前面说的那个个别专业软件无法在window里运行设计的当然很多多游戏WIN7也是不兼容的哈哈哈忘记了现在补上window是前进的方向,许多新的技术被运用在里面,以后XP是必将被淘汰的,但是如果你现在追求系统的稳定性以及软件的拓展宽度,那么你装机还是使用XP为好,以后等到WIN7出了SP2的时候再安装应该就可以通用了吧★考核知识点Windows R3与R0通信参见讲稿章节
6.3填空题如果想控制系统,就必须取得0特权级,例如大多数驱动程序就是工作在该特权级上的简答题编译好的驱动在系统中如何被加载并执行?★考核知识点内核函数与内核驱动模块参见讲稿章节
6.4简答题什么是内核函数?用途是把线性不可分的数据集映射到高维空间,成为可分的数据集方法是在低维空间计算输入向量的点积,达到高维空间的效果核技巧的应用,最有名的是SVM需要说明的是,核技巧不是SVM的专利最小二乘和逻辑回归都可以使用核技巧,但是计算量太大,所以一般不用只有SVM框架下的核函数,解的系数是稀疏的,使得分类器的计算复杂度远低于核技巧的其他衍生品版权声明本文为CSDN博主「勇敢的仙人掌」的原创文章,遵循CC
4.0BY-SA版权协议,转载请附上原文出处链接及本声明原文链接https://blog.csdn.net/jieming2002/article/details/79321643简答题什么是内核驱动模块?由于Windows是一个支持多平台的操作系统,为了与其他平台兼容,它只利用了CPU的两个运行级别一个被称为内核模式,是操作系统的核心部分,设备驱动程序就是运行在该模式下;另一个被称为用户模式,操作系统的用户接口部分(就是我们通常所说的Win32API)以及所有的用户应用程序都运行在该级别★考核知识点内核对象参见讲稿章节
6.5填空题,[■的中文全称是,()简答题什么是TEB TEB测试★考核知识点SSDT参见讲稿______________________________________简答题偈建WinDb睥合虚拟机的内核质试★考核知识点TEB与PEB参见讲稿章节
6.7填空题FS为段寄存器,当代码运行在()级时,基地址即为当而线程的线程环境块•()简答题同时调试R3级的★考核知识点SEH的概念及基本知识参见讲稿章节
7.3简答题回调函数的返回值都有哪些?因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者它只需知道存在一个具有特定原型和限制条件的被调用函数简而言之,回调函数就是允许用户把需要调用的函数的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法回调函数在实际中有许多作用假设有这样i种情况我们要编写一个库,它提供了某些排序算法的实现如冒泡排序、快速排序、shell排序、shake排序等等,为了能让库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑;或者,能让库可用于多种数据类型int、float、string,此时,可以使用函数指针,并进行回调回调可用于通知机制例如,有时要在A程序中设置一个计时器,每到一定时间,A程序会得到相应的通知,但通知机制的实现者对A程序一无所知那么,就需一个具有特定原型的函数指针进行回调,通知A程序事件己经发生实际上,API使用一个回调函数SetTimer来通知A程序如果没有提供同调函数,它还会把一个消息发往程序的消息队列另一个使用回调机制的API函数是EnumWindow,它枚举屏幕上所有的顶层窗口,每个窗口都可以通过它调用另一个程序提供的函数,并传递窗口的处理程序例如如果被调用者返回一个值,就继续进行迭代;否则,退出EnumWindow并不关心被调用者在何处,也不关心被调用者用它传递的处理程序做了什么,它只关心返回值,因为基于返回值,它将继续执行或退出C语言的回调函数只能通过函数指针实现,在C++中则可以使用匿名函数lambda或仿函数functor作为回调函数★考核知识点向量化异常处理参见讲稿章节
7.4「技VEH与SEH的异■★考核知识点异常处理的实际应用参见讲稿章节
7.6简答题异常处理程序设计中的注意事项1使稣弋码混乱最小化;2瘢并保留诊断信息;3iW合适的人员;4采用合适的方式结束异常活动.为史好地实现上述效果,以下基本准则祚注意:1不要过度使用异常.过度使用异常的两个主要表现1杞异常处理和普通措误混淆在一起,不再编写任何谄误处理代码,而是以简单地抛出异常采代S所有的异常处理;2•败异常处®m替35^5制.事实上,对完全已知的或者普通的借误应该编写处理错误的代码只有对外部的、不能确定和预知的运行时倍误才使用异常.2不要使用过于庞大的try块.try块复杂时分析异甯的逻辑变得复杂.应该把大块的try块分割成多个可能出现异菊的程序段落,并把它们放在单独的try块中,从而分别捕荻并处理异常.3避免使用Catch All照Catch AH语句示例:11try{2〃可能引发Checked肆常的代码3}catch Throwablet{4〃逆行昂常处理5t.printStackTrace;6}所谓的Catch All不过是通过避免异常处理而加快编程的进度.实际开发应该避免4不要忽略捕荻到的异常.建议处理异常、重新抛出异常后者等到合适的层处理异常.美任链模式是f不错的设计模式,建议了解一下.★考核知识点PE文件格式参见讲稿章节
8.1简答题什么是基地址?一般程序要找到内存所存储的数据或者下一个指令,都要通过段地址+偏移地址的形式来确定所需要的东西所在内存的位置,以便读取简答题什么是虚拟地址和相对虚拟地址,以及虚拟地址和相对虚拟地址之间的转化公式可能很多创业者从字面上理解,误以为虚拟的地址就是虚假存在的地址,准备来说虚拟地址,应叫做商务秘书公司地址托管,而虚假的地址也绝对不能用作注册公司,而托管地址并不是虚假注册,所以它们并不是一回事填空题在Windows系统中,PE文件被系统加载器映射到内存中每个程序都有自己的虚拟空间,这个虚拟空间的内存地址称为虚拟地址填空题当PE文件储存在磁盘中时,某个数据的位置相对于文件头的偏移量称为文件偏移参见讲稿章节
8.2简答题列举IMAGE FILEHEADER结构都有哪些字段填空题紧跟着DOS stub的是(PE文件头)它是PE相关结构NT映像头(IMAGE_NT_HEADERS)的简称参见讲稿章节
8.3简笞题:区块表有什么作用?填空题在PE文件头与原始数据之间存在一个(表),其中包含每个区块在内存映像中的信息,分别指向不同的区块实体填空题区块中的数据逻辑通常是关联的PE文件一般至少有两个区块,一个是代码块,另一个是(数据块)参见讲稿章节
8.5填空题当PE装我器载入PE文件时,会检查(输入表)并将相关DLL映射到进程地址空间填空题Windows目录里的应用程序就是典型的绑定输人结构程序,其(IAT)己指向相关DLL的函数参见讲稿章节
1.
61.判断题Windows是一个消息(Message)驱动式系统Windows消息提供在应用程序与应用程序之间、应用程序与Windows系统之间进行通信的手段附(考核知识点解释)Windows消息机制Windows是一个消息(Message)驱动式系统o Windows消息提供在应用程序与应用程序之间、应用程序与Windows系统之间进行通信的手段应用程序想要实现的功能由消息触发,通过对消息的响应和处理完成Windows系统中有两种消息队列:一种是系统消息队列;另一种是应用程序消息队列计算机的所有输入设备由Windows监控当一个事件发生时,Windows先将输入的消息放入系统消息队列,再将输入的消息复制到相应的应用程序队列中,应用程序中的消息循环在它的消息队列中检索每个消息并发送给相应的窗口函数一个事件从发生到到达处理它的窗口函数必须经历上述过程值注得意的是消息的非抢先性,即不论事件的急与缓,总是按到达的先后排队(一些系统消息除外),而这可能导致一些外部实时事件得不到及时的处理★考核知识点OllyDdg调试器参见讲稿章节
2.
11.判断题OllyDbg H能进行动态调试()
2.判断OllyDbg是调试Ring0级程序的首选调试■具.()
3.单选题OllyDbg是一款具有可视化界面的用户模式(D)工具A.调试B.汇编C.编译D.反汇编OllyDbg调试器附(考核知识点解释)01lyDbg(简称0D)是由Oleh Yuschuk(www.ol1ydbg.de)编写的一款具有可视化界面的用户模式调试器ollyDbg结合了动态调试和静态分析,具有GUI界面,非常容易上手,对异常的跟踪处理相当灵活这些特性使011yDbg成为调试Ring3级程序的首选工具它的反汇编引擎很强大,可识别数千个被C和Windows频繁使用的函数,并能将其参数注释出来它会自动分析函数过程、循环语句、代码中的字符串等★考核知识点OllyDdg的INT3断点和硬件断点
1.判断题LVF3断点不改变原程序的机岩码()
2.判断题硬件断点最多可以设置4个(T)参见讲稿章节
2.4附(考核知识点解释)断点断点(Breakpoint)是调试器的一个重要功能,使执行的程序中断在指定的地方,从而方便对其进行分析INT3断点INT3断点指令,其机器码是OxCC,也常被称为“CC指令”当被调试进程执行TNT3指令导致一个异常时,调试器就会捕捉这个异常,从而停在断点处,然后将断点处的指令恢复成原来的指令使用INT3断点的优点是可以设置无数个断点,缺点是改变了原程序机器码,容易被软件检测到硬件断点硬件断点和DRx调试寄存器有关硬件断点的原理是使用DRO,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最强大的地方还是命令行,通常结合GL1和命令行进行操作.()多选题WinDbg,持哪些调试()A.以打开、附加的方式调试应用程序B.可以分析Dump文件C.可以进行远程调试D.内核调试★考核知识点文件类型分析参见讲稿章节
3.1单选题IDA的原始嵌入式脚本语言叫作(C)A.FLIRT B.FLAIR C.IDC D.Perl单选题IDA分析数据时,数据类型可以在(B)之间转换A.db、dw、df B.db、dw、dd C.db、dd、df D.dw dd、df多选题卜•列说法正确的是()A.PEiD这类文件分析工具是利用导入函数搜索来完成识别工作的B.开发■言都有固定的启动代码,利用这一点就可以识别程序是由何种语言编译的C.被加密程序处理过的程序中会留下加密软件的相关信息,利用这一点就可以识别程序是被何种软件加密的D.PEiD提供了一个扩展接口文件uscrdb.txt,用户可以自定义•些特征码,这样就可以识别新的文件类型了附(考核知识点解释)文件类型分析逆向分析程序的第一步就是分析程序的类型,了解程序是用什么语言编写的或用什么编译器编译的,以及程序是否被某种加密程序处理过,然后才能有的放矢,进行下一步工作这个分析过程需要文件分析工具的辅助常见的文件分析工具有PEiD,Exeinfo PE等此类工具可以检测大多数编译语言、病毒和加密软件★考核知识点:反汇编引擎参见讲稿章节
3.2单选题以下对x86架构指令集支持最全的反汇编引擎是(D)A.ODDisasm B.BeaEngine C.Udis86D.Capstone多选题卜列是反汇编引擎的有()A.ODDisasm B.BeaEngine C.Udis86D.Keystone判断题OllyDbg自带的反汇编引擎ODDisasm,优点是具有汇编接口(即文本解析,将文本字符串解析并编码成二进制值),这个特性曾经独树一帜,且支持64位指令的汇编和反汇编.()判断题Jystone和Capstone是同-系歹U的引擎,由^Capstone主要负责跨平台多指令集的反汇编工作,而Keystone主要负责跨平台多指令集的汇编工作•与OllyDbg的汇编器-样,Keystone也只支持文本汇编,不支持像Asmjit那样的函数式汇编.()附(考核知识点解释)反汇编引擎概述在安全软件和保护软件的开发过程中经常会用到汇编引擎和反汇编引擎,例如OllyDbg、IDA、VMProtect.加壳软件和反编译器等反汇编引擎的作用是把机器码解析成汇编指令常用的反汇编引擎有0DDisasm BeaEngineUdis86Capstone,汇编引擎有ODAsscmhler^Keystone、Asmjito★考核知识点IDA Pro加载可执行文件参见讲稿章节
3.3单选题TDA是按()装载PE文件的A.交叉参考参考重命名C.格式化指令操作数D.代码和数据转换dW下列关于IDA有关说法正确的是()A.IDA最主要的特性是交互利多处理器.用户可以通过对IDA的交互来指导IDA更好地进行反汇编B.IDA是按区块装载PE文件的,例如.text(代码块)..data(数据块).rsrc(资源块)、.idata(输入表)和.edata(输出表)等、C.TDA反汇编所消耗的时间与程序大小及复杂程度有关,通常需要等待,段时间才能完成D.IDAnT以格式化指令使用的常量,因此应尽可能使用符号名称而非数字,从而使反汇编代码更具可读性TD■根据被反汇编指令的上下文、所使用的数据作出格式化决定•对其他情况,IDA一般会将相关常量格式化成一个十进制常★考核知识点IDA Pro导航参见讲稿章节
3.5单选题IDA PRO简称IDA,是一个交互式(D)工具A.调试B.汇编C.编译D.反汇编★考核知识点IDA Pro交叉引用参见讲稿章节
3.6单选题通过()可以知道指令代码的相互调用关系A.交义参考B.参考重命名C.格式化指令操作数D.代码和数据转换★考核知识点IDA Pro函数分析参见讲稿章节
3.7多选题|)A反汇编代式文件A.MAP B.ASM C.EXE D.DIF★考核知识点IDA Pro识别数组、结构体参见讲稿章节
3.8判断题IDA有着较强的数组聚合能力它可以将一出数据声明变成一个反汇编行,按数组的形式显示,从而简化反汇编代码清单.()N MTDA在进行反汇编的时候能正确区分数据和代码.()★考核知识点IDA Pro增强反汇编参见讲稿章节
3.9判断题进人指令汇编修改状态,jn■指令共2字节,因此用2个nop指令代替,这种跳过算法分析直接修改关键跳转指令使程序注册成功的方法,通常被解密者称为“爆破法”.()★考核知识点十六进制工具与静态分析技术应用实例参见讲稿章节
3.10单选题(B)十六进制工具提供了文件比较功能A.HexWorkshop B.WinHex C.Hiew D.ApateDNS多选题常用的十六进制工具有(A)A.HexWorkshop B.WinHex C.Hiew D.ApateDNS参见讲稿章节
4.1多选题:在以卜哪种方式■用于函数的参数传递()C寄存器方式D♦局变,单选题Windows的stdcal1调用约定,使用(A)实现函数的参数传递A栈B队列C寄存器D全局变量单选题虚函数的地址是在(C)时候确定的A程序编写时B编译程序时C调用即将进行时D程序执行后以断加局部变量是函数内部定义的-个变量,其作用域和生命周期作用,整个程序()判断题再根据这个地址到虚函数表中取出该函数的地址,最后调用该函数()参见讲稿章节
4.5单选题以下先执行语句块,再进行表达式判断的循环语句是(A)A do循环B while循环C for循环D都不是判印顷耕在运行时,先调用main函数执行用户编写的代码,再执行初始化函数代码.()参见讲稿章节
4.7判断题〔C++的■大核心机制是封装、继承、多态,虚函数就是多态的一种体现VC++实现虚函数的方式是虚表()附(考核知识点解释)C++的三大核心机制是封装、继承、多态,虚函数是多态的一种体现,对于。