软件保护技术-复习题.doc_第1页
软件保护技术-复习题.doc_第2页
软件保护技术-复习题.doc_第3页
软件保护技术-复习题.doc_第4页
软件保护技术-复习题.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 基础知识1判断题1字符“D” 的Unicode码的十六进制是0x0042 2如“0”的ASCII码是30H,“A”的ASCII码是40H,“a”的ASCII码是60H。3Unicode是一种新的编码方式,不包含ASCII的一个扩展。4Windows中的注册表对软件保护来说没有什么作用。5Windows中文件句柄句柄(Handle)是Windows用来标识被应用程序所建立或使用的对象的唯一整数值。6API函数是提供应用程序运行所需要的窗口管理、图形设备接口、内存管理等各项服务功能的函数,API函数是以dll库的形式组织在一起。716位CPU的数据寄存器组表示AX、BX等,32位CPU的数据寄存器组表示EAX、EBX等,64位CPU的数据寄存器组表示RAX、RBX等。8字符“C”在计算机内存中的Unicode码的十六进制是0x0043。9PostMessage函数将一条消息投递到指定窗口的程序队列。1016位CPU的数据寄存器组表示AX、BX等,32位CPU的数据寄存器组表示EAX、EBX等,64位CPU的数据寄存器组表示RAX、RBX等。11Windows系统中有两种消息队列:一种是系统消息队列,另一种是应用程序消息队列。12. Windows的API函数一般是存放在动态链接库DLL中。13.Unicode也是ASCII的一个扩展,在Unicode用4个字节来表示。2填空题1如“1”的ASCII码是31H(48D),“A”的ASCII码是 ,“a”的ASCII码是61H。2PE文件使用的是一个平面地址空间,所有代码和 都被合并在一起。3字符“ ” 的Unicode码的十六进制是0x0042。4如“1”的ASCII码是31H(49D),“D”的ASCII码是 ,“c”的ASCII码是63H(97D)。5字母p的ASCII码值是70H,所以字母p的Unicode码值是 。 6字母p的ASCII码值是70H,所以字母p的Unicode码值在内存中存放的形式是 。7字符“A”的unicode码表示为 。(0x0041)8Windows将完成不同功能的API函数分类放到不同 中。(动态链接库DLL)9注册表的 不能被删除、添加和修改。10. Unicode也是ASCII的一个扩展,在Unicode中用 字节来表示。11. 英文小写字母的ASCII码范围是0x61-0x7A,比相应大写字母的ASCII码值多 。0x 20。3简答题1保护模式2API函数3windows注册表4动态链接库DLL5选择题1在保护模式下,所有的应用程序都有权限级别,并分为 个等级。A1 B2 C3 D42如“0”的ASCII码是 ,“A”的ASCII码是41H(65D),“a”的ASCII码是61H(97D)。 A20H B30H C40H D50H 3Windows系统中有两种消息队列:一种是 ,另一种是应用程序消息队列。A堆栈消息队列 B系统消息队列 C代码消息队列 D进程消息队列4Windows中 包括进程与线程控制、内存管理、文件访问等,提供操作系统核心功能服务;AKernel32.dll BUser32.dll CGdi32.dll DAdvapi32.dll5注册表是Windows的核心数据库,针对注册表,下面说法错误的有: 。A注册表的所有键都可以修改B注册表的子键可以修改C注册表的主键不能修改D注册表的主键用大写字母表示6Windows将完成不同功能的API函数分类放到不同DLL中,其中_是Windows中最重要的动态链接库AKernel32.dll BAdvapi32.dll CNetAPI32.dll DShell32.dll7与网络相关是API函数一般在 动态链接库中。AKernel32.dll BAdvapi32.dll CNetAPI32.dll DShell32.dll 8. RegOpenKeyEx()函数中有4个形式参数,其中REGSAM samDesired形式参数的作用是 。A打开注册表主键 B打开注册表子键 C获取子键名的地址 D确定对注册表进行何种操作。9. Unicode也是ASCII的一个扩展,在Unicode用 来表示。A1个字节 B2字节 C3字节 D4字节第2章 代码分析技术1判断题1PE文件的在磁盘上的数据结构与在内存中的数据结构是一致的。2StdCall(标准调用Standard Call)调用约定是Win32 API函数采用的约定方式,即函数入口参数按从左到右的顺序入栈。3操作系统在执行一个函数时,首先调用函数名,然后再对函数的参数进行压栈。4某文件的VA= 0x401122,k0xB01,ImageBase=0x400000,File Offset=0x621。5在保护模式下,所有的应用程序都有权限级别,并分为4个等级,其中0特权级别最低,3特权级别最高。6注册表监视软件regmon等可以作为黑壳工具使用,对软件保护没有任何作用。7PE文件使用的是一个平面地址空间,所有代码和数据都被分开。8在PE文件中的区块.text是在编译或汇编结束时产生的块,代表是可执行文件的指令代码。9在PE文件中,不同区块的,各代码或数据地址的偏移量一定相等。10操作系统在执行一个函数时,首先调用函数名,然后在对函数的形式参数进行压栈。11.长转移(Long jump)指令中无条件转移的机器码是5个字节,条件转移的机器码是8字节。2填空题1PE文件的在磁盘上的数据结构与在内存中的结构是 。2StdCall(标准调用Standard Call)调用约定是Win32 API函数采用的约定方式,即函数入口参数按 _的顺序入栈。3某文件的VA= ,k0xB01,ImageBase=0x400000,File Offset=0x6214在WindowsXP中可执行文件使用了 文件格式。5无条件短转移的机器码形式为EB*。如有指令:401000 jmp 401011: :401011 xor eax,eax则jmp 401010的机器码是 。6在“0167:00401000”中,00401000表示内存的 ,一般来说,同一程序的同一条指令在不同系统环境下,此值相同。(3个题目)7在“0167:00401000”中,0167:表示 ,其数据保存在CS段选择器里,同一程序在不同系统环境下, 此值可能不同。(3个题目)8.长转移(Long jump)指令中无条件转移的机器码是 ,条件转移的机器码是6字节。9.在PE文件中,每一个区块都有不同的名字,这个名字用来表示区块的 。每一个区块的大小不受限制。3简答题1文件偏移地址2句柄3虚拟地址4基地址5实模式6相对虚拟地址7注册表8. PE格式4应用题1如有下面c+程序:Myadd(int x, int y) int temptemp =x+y return= temp 写出其反汇编代码,并解释每个汇编语句的作用。2例如下面的c函数:Mysub1(y,x) erg=x-y Mysub1=erg 假设其反汇编代码见答题纸,请解释每个汇编语句的作用。5选择题1某文件的VA= ,k0xB01,ImageBase=0x400000,File Offset=0x621A0x004621 B0x401122 C0x000756 D0x0006212PE文件使用的是一个 空间,所有代码和数据都被合并在一起。A代码地址 B平面地址 C4段地址 D立体地址3在保护模式下,所有的应用程序都有权限级别,并分为 个等级。A1 B2 C3 D44某文件的VA= ,k0xB01,ImageBase=0x400000,File Offset=0x621A0x004621 B0x401122 C0x000756 D0x000621 5字符“ ” 的Unicode码的十六进制是0x0043AA BB CC DD6StdCall(标准调用Standard Call)调用约定是Win32 API函数采用的约定方式,即函数入口参数按 的顺序入栈。A从右到左 B从下到上 C从左到右 D从上到下 7在“0167:00401000”中,0167:表示 ,其数据保存在CS段选择器里,同一程序在不同系统环境下,此值可能不同。A内存补丁 B段选择子 C虚拟地址 D文件偏地址8. 长转移(Long jump)指令中无条件转移的机器码是 ,条件转移的机器码是6字节。A4个字节 B5个字节 C6个字节 D8个字节9.用 函数可以获得注册表中一个项的值。A. RegOpenKeyEx() B. RegCloseKey()C. RegSetValueEx() D. RegQueryValueEx( )第3章 静态分析技术1判断题1在调试器窗口中有:“016F:0040436 50 PUSH EAX”字符,其中“50”表示指令的相对虚拟地址。(错)2在一些常用的工具软件中,其中 W32Dasm和IDA Pro可以用来对软件进行静态分析。(对) 3在一些常用的工具软件,其中ResourceHacker是可执行文件编辑工具。4用W32Dasm打开.exe程序后,在主窗口中将显示反汇编代码等信息,其中第一部分是区块信息 。 5在用W32Dasm等静态分析工具分析软件时,需要找到代码的开始处。6静态分析时,我们应该重点分析程序入口点处的反汇编代码。7所谓静态分析即从反汇编出来的程序清单上分析程序流程,从提示信息入手,了解软件的编程思路。8IDA Pro内核模式调试器是指能调试操作系统内核的调试器,它们工作在Ring 0级。9一般.exe文件可以有输入函数,也可以有输出函数。10用W32Dasm分析.exe文件件时,可以看到输入表和输出表中具体函数。11在用W32Dasm等工具分析软件时,需要找到程序的入口点(Goto Program Entry Point),也就是源程序代码执行的起始点。12汉化软件时,最好的方法是要知道原程序的高级语言代码。2填空题1已知有反汇编语句:* Reference To: USER32.PostQuitMessage, Ord:01E0h | :00401167 FF15B0404000 Call dword ptr 004040B0;其中Call dword ptr 004040B0表示 。2所谓 ,即从反汇编出来的程序清单上分析程序流程,从提示信息入手,进行分析,以便了解软件中各模块所完成的功能,各模块之间的关系,了解软件的编程思路。3有反汇编代码:* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:004010DF(C);| :00401110 8B44240C mov eax, dword ptr esp+0C其中:004010DF(C)表示 。4在一些常用的分析工具软件中,其中 和IDA Pro可以用来对软件进行静态分析。5在调试器窗口中有:“016F:0040436 50 PUSH EAX”字符,其中“0040436”表示指令的 。6在常用的静态分析工具软件中,其中 是可执行文件编辑编辑工具。7代码段有一条如下无条件转移指令: :401000 jmp 402398 :402398 xor eax,eax无条件长转移指令的长度是 个字节,机器码是E9。8 是一个功能强大的静态反汇编工具,操作简单,使用方便,并且免费。5选择题1在调试器窗口中有:“016F:0040436 50 PUSH EAX”字符,其中“0040436”表示指令的 。 A机器码 B段选择地址 C虚拟地址 D机器地址2下面是一些常用的工具软件,其中 是可执行文件资源编辑工具。Asoftice BASPack CResource Hacker DPEiDentifer3在用W32Dasm等工具分析软件时,需要找到程序入口点(Goto Program Entry Point),也就是 。A程序执行的起始点 B代码开始的起始点C反汇编指令的起始点 D汇编指令的起始点4OllyDbg用户模式调试器是指用来调试用户模式的应用程序,它们工作在 。ARing 0级 BRing 1级 CRing 2级 DRing 3级5所谓 即从反汇编出来的程序清单上分析程序流程,从提示信息入手,进行分析,以便了解软件中各模块所完成的功能,各模块之间的关系,了解软件的编程思路A静态分析 B动态分析 C资源分析 D代码分析6设有反汇编代码* Reference To: USER32.LoadIconA, Ord:019Eh :00401033 FF15B4404000 Call dword ptr 004040B4 ,下面说法错误的是:ACall dword ptr 004040B4语句表示调用LoadIconA函数BFF15B4404000是Call dword ptr 004040B4语句的机器码CLoadIconA函数的参数还没有被压栈D00401033表示Call dword ptr 004040B4语句的文件的虚拟地址7下面是一些常用的工具软件,其中 软件是典型的文本编辑软件。Asoftice BHiew CSuperscan DProcDump8下面是一些常用的工具软件,其中 是可执行文件资源编辑工具。Asoftice BASPack CResource Hacker DPEiDentifer9下面是一些常用的工具软件,其中 和IDA Pro可以用来对软件进行静态分析。 ASoftice BASPack CW32Dasm DSniffer10. 用W32Dasm打开可执行文件.exe程序后,在主窗口中第一列显示 信息。A.注释 B.机器码 C.汇编代码 D.虚拟地址第4章 动态分析技术1判断题1. OllyDbg打开TraceMe后,按F9或shfit+F9键就可让它运行。2. OllyDbg代码窗口显示被调试程序的代码。它有四个列;相对虚拟地址、机器码、汇编代码和注释。3. SoftICE是Compuware NuMega公司开发的最著名的动态调试工具。4.消息断点使得当某个特定窗口函数发送到某个特定消息时程序中断。5. OllyDbg用户模式调试器是指用来调试用户模式的应用程序,它们工作在Ring 0级6. 安装SoftICE成功后,按“Ctrl+C” 键可以激活并打开一个调试窗口。7动态分析技术是指通过分析反汇编代码来理解其代码功能等,逆向推出原软件的思路。2填空题1动态分析技术中最重要的工具是调试器,分为用户模式和 两种类型。2安装OllyDbg成功后,按 键可以设置代码定位断点。3OllyDbg打开TraceMe后,按键 就可让它运行。415OllyDbg代码窗口显示被调试程序的代码。它有四个列; 、Hex dump(机器码)、Disassembly(汇编代码)和Comment(注释)。5 是Compuware NuMega公司开发的最著名的动态软件调试工具。6教材中介绍的用户模式软件动态调试器是 。7 使得当某个特定窗口函数接收到某个特定消息时程序中断。8Ollydbg打开TraceMe后,按 键就可以实现单步跟踪,并且可以跟踪到函数内部中。5选择题1 使得当某个特定窗口函数接收到某个特定消息时程序中断。A数据断点 B代码断点 C条件断点 D消息断点2用OllyDbg打开TraceMe后,按 键就可让TraceMe运行起来。AF2或shfit+F2 BF4或shfit+F4 CF8或shfit+F8 DF9或shfit+F93OllyDbg代码窗口显示被调试程序的代码,它有四个列;Address、Hex dump、Disassembly和 。AWindows BCode COrder DComment第5章 软件保护技术及其弱点1判断题1用Set Timer()函数作为时间限制,当程序不再需要计时器时,可以调用KillTimer()来销毁计时器。2分析Key File文件时,教材中使用文件监视工具名filemon。3采用日期限制的软件不需要防RegMon, FileMon之类的监视软件。4在程序运行前,用FindWindow,GetWindowText函数查找具相同窗口类名和标题的窗口,用这种方法也不能让程序只运行一个事例。5软件将菜单变灰或变为不可用,一般采用EnableMenuItem()等函数。6若要找到序列号,或者修改判断序列号之后的跳转指令,可以利用各种调试器来定位判断序列号的数据段。7通过用户名来验证注册码的正确性时,用来生成注册码的函数F直接出现在应用软件代码中。8时间限制程序有两类,其中包括限制软件每次的运行时间。9在解除网络验证时,除了写服务端外,也可直接修改客户端程序程序,将封包中的数据整合进去。10. Windows是一个多任务的操作系统,应用程序可以多次运行以形成多个运行实例。所以我们不能控制程序只能运行一个实例。11. 通过用注册码= F(用户名)来验证注册码的正确性时,正确的注册码不会出现在内存中。2填空题1若要找到序列号,或者修改判断序列号之后的跳转指令,可以利用各种调试器来定位判断序列号的 。2软件将菜单变灰或变为不可用,一般采用 函数。3通过注册码来验证用户名的正确性时,用来生成注册码的函数F 在应用软件代码中。4分析Key File文件时,教材中使用文件监视工具名是 。5用SetTimer()函数作为时间限制,当程序不再需要计时器时,可以调用 来销毁计时器。6采用日期限制的软件必须能防RegMon、 之类的监视软件,否则很容易被找到日期的存放位置。7. 网络验证是目前流行的一种保护技术,其优点是可以将一些关键数据放到 上。4应用题1编写程序,实现如下功能:(1)当用户输入错误口令次数超过5次时,关闭程序。(2)限制用户使用弱口令,如11111、12345等。(3)口令每使用一个星期后,要求更换口令。(4)限制用户不能循环使用旧口令。 注意:对程序中所使用的变量作用要进行说明。2编写一程序,该程序可以完成加法运算,但执行该程序时每隔2分钟就会弹出警告窗口,提示“请购买正式版本”。3在设计软件时,采取哪些措施可以保护软件不容易被破解。4.设计软件使用时间限制保护时,要注意哪些问题?5选择题1采用日期限制的软件必须能防RegMon, 之类的监视软件,否则很容易被找到日期的存放位置。AFileMon BOllyDbg CeXeScope DW32Dsam2在程序运行前,用FindWindow,GetWindowText函数查找具相同窗口类名和标题的窗口,用这种方法可以实现 。A使用时间限制 B使用时间端限制C限制菜单使用 D让程序只运行一个事例3若要找到序列号,或者修改判断序列号之后的跳转指令,可以利用各种调试器来定位判断序列号的 。A堆栈段 B附加数据段 C数据段 D代码段4分析Key File文件时,教材中使用文件监视工具名 。Aregmon Bfilemon Casprotect Dupx5软件将菜单变灰或变为不可用,一般采用 函数。AEnableWindow() BKillMenu56()CEnableMenuItem() DGetTickCount( )6通过时间段的限制来保护软件版权时,应用软件可以 。 A保存软件正在使用的时间B保存软件安装时间 C保存软件安装时间和最后一次使用的时间D保存软件最后一次使用的时间7用SetTimer()函数作为时间限制,当程序不再需要计时器时,可以调用 来销毁计时器。ATimeGetTime( ) BKillTimer()CTimeEetEvent( ) DGetTickCount( )8分析Key File文件时,教材中使用文件监视工具名 。Aregmon Bupx Casprotect Dfilemon 9 对网络验证进行攻击时,最好的方法是分析 。 A数据包 B服务端程序代码 C客户端程序代码 D序列号10. 网络验证破解的一般思路是拦截 返回的数据包,分析程序是如何处理数据包的。A.路由器 B.网络 C.客户机 D服务器第7章 PE文件格式1判断题1输入表是以IID(IMAGE_IMPORT_DESCRIPTOR)数组开始的,IID是描述PE文件中使用的DLL文件信息。(对)2输入表结构中与实际运行相关的主要是IAT结构,这个结构中用于保存原程序的实际地址。2填空题1在保护模式下,所有的应用程序都有权限级别,并分为 个等级,其中3特权级别最低,0特权级别最高。2输入表结构中与实际运行相关的主要是IAT结构,这个结构中用于保存 的实际地址。3简答题1结构化异常处理2文件输入表3文件输出表4. U盾5选择题1输入表结构中与实际运行相关的主要是 结构,这个结构中用于保存API的实际地址。AATA BIAT CAPI DDLL2PE文件的在 上的数据结构与在内存中的数据结构是一致的。A寄存器 BCPU C硬盘 D内存第8章 反跟踪技术1判断题1当一个异常发生时,操作系统要向引起异常的线程的堆栈里压入3个结构: EXCEPTION-WINDOWS,CONTEXT和EXCEPTION_POINTERS。2当反汇编发生错误时,导致反汇编的一些跳转指令跳转的位置无效,就可以断定该程序中使用了花指令。3所谓异常(Exception )就是在应用程序的正常执行过程中发生的不正常事件,CPU引发的异常称为软件异常。4所有应用程序的SEH调用最终不需要Windows系统来处理。5Windows在创建线程时,操作系统均会为每个线程分配线程环境块TEB,而且将堆栈段SS指向当前线程的TEB数据。2填空题1Windows在创建线程时, 会为每个线程分配线程环境块TEB,而且都将附加数据端FS指向当前线程的TEB数据。2当一个异常发生时,操作系统要向引起异常的线程的堆栈里压入3个结构: EXCEPTION-RECORD, _和EXCEPTION_POINTERS。3所谓异常(Exception )就是在应用程序的 过程中发生的不正常事件,CPU引发的异常称为硬件异常。4在程序运行前,用 ,GetWindowText函数查找具相同窗口类名和标题的窗口,用这种方法可以实现让程序只运行一个事例。5所有应用程序的SEH调用最终都由 来处理的。6当反汇编发生错误时,导致反汇编的一些跳转指令跳转的位置无效,就可以断定该程序中使用了 。7. 除了CPU捕获一个事件并引发一个 外,在代码中也可以强制引发一个软件异常。只需调用RaiseException函数。3简答题1“花指令” 2反跟踪技术4应用题1. 简述反跟踪基本方法。2“花指令”有什么作用? 5选择题1当 时,导致反汇编的一些跳转指令跳转的位置无效,就可以断定该程序中使用了花指令。A反汇编运行错误 B反汇编代码错误C源程序运行错误 D源程序代码错误2所有应用程序的SEH调用最终都由 来处理。AWindows线程 BWindows系统 CWindows进程 DWindows调试器3Windows在创建线程时,操作系统均会为每个线程分配线程环境块TEB,而且都将 指向当前线程的TEB数据。A代码段 B附加数据段FS CECX D数据段 4当一个异常发生时,操作系统要向引起异常的线程的堆栈里压入3个结构: EXCEPTION-RECORD,CONTEXT和 。AEXCEPTION-CONTEXT BCONTEXTCTEB DEXCEPTION_POINTERS5所谓异常(Exception )就是在应用程序的正常执行过程中发生的不正常事件,CPU引发的异常通常称为 。ACPU异常 B硬件异常 C软件异常 D堆栈异常6如果在程序中加入一些无用的字节来干扰反汇编软件的判断,从而使得它错误地确定指令的起始位置,也就达到干扰 反汇编工作的目的。 AW32Dasm Bregmon Casprotect DFindWindow7因为有多种异常,系统首先判断异常是否应发送给 。A目标程序 B高级程序 C汇编程序 D源程序第9章 加壳与脱壳1判断题1在软件保护中,ProcDump工具软件可以用来对软件加“壳”。2软件壳的加载的第一步是获取壳自己所需要的API地址。3加密保护的壳是以加密保护为其重点,保护重点是程序的入口点。4如果用PE编辑工具查看加壳后的文件,就会发现未加壳的文件和加壳后的文件的输入表是不一样的。5在软件保护中,ProcDump工具软件可以作为通用“脱壳”软件。6CodeFusion是一个功能强大的文件补丁制作工具。7加壳软件按照其加壳目的和作用可分为两类:一是保护软件,二是压缩软件。8DLL的入口点在整个执行过程中会执行两次。一次是在开始时,用来对DLL做一些初始化;第二次是在退出时。9壳一般都不修改了原程序文件的输入表,然后自己模拟Windows装载器的工作来填充IT中相关的数据。10当对一个应用软件加壳时,其保护程序部分优先于应用软件执行。2填空题1加壳软件按照其加壳目的和作用可分为两类:一是 ,二是压缩软件。2在软件保护中, 工具软件可以作为通用“脱壳”软件。3ASProtect是一个功能强大的 工具。4DLL的入口点在整个执行过程中会执行两次。一次是 时,用来对DLL做一些初始化;第二次是在退出时。5手动脱壳过程一般分为三步:一是查找程序的真正入口点;二是抓取 ;三是重建文件输入表。6在软件保护中, 工具软件可以用来对软件加“壳”。7软件壳的加载的第一步是获取壳自己所需要的 。8加密保护的壳是以加密保护为其重点,保护重点是在OEP隐藏和 上。3简答题1软件“脱壳”2内存映像文件3软件“加壳”3U盾4应用题1写出软件壳的加载过程。2写出手动脱壳方法。5选择题1软件壳的加载过程最后一步是 。A跳转到程序原入口点BHOOK-APIC获取壳自己所需要的API地址 D加密原程序的各个区块的数据2加密保护的壳是以加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论