计算机107软件保护技术实验指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件保护技术实验指导书

步山岳

计算机工程系

特别提示

1.在实验报告封面上要正确写上课程名称“软件保护技术”、班级、学号、姓名。

书写实验报告内容包括:

(1)实验目的与要求;

(2)实验环境;

(3)实验内容与实验步骤(实验步骤、源代码);

(4)实验心得(可以是心得体会、难点讨论、意见建议等)。

2.对实验3一定要提前预习,充分准备,明确设计思路、编程逻辑和算法过程。

3.做实验时要将教材、实验指导书和实验报告带到实验室,便于学习。4.实验时要及时记录实验过程中所碰到问题和解决方法,并写到实验报告上。

5.每次做实验之前,请先看一下实验指导书中该实验最后“实验说明”,然后在做实验。

6.写实验报告时,除“实验目的与要求”外,“实验环境”要和当前实验室的实验环境相同,对于“实验内容与步骤”内容应该是你真正所做实验的具体内容,做什么就写什么请不要抄实验指导中的“实验内容与步骤”。

实验 1 W32DASM静态分析软件(4学时)

实验目的

1.了解静态分析软件基本功能;

2.熟悉W32DASM使用;

3.学会软件静态分析的基本方法。

实验环境

Pentium4 1.4G Hz以上CPU,256M以上内存,10G以上硬盘,安装Windows2000以上操作系统,静态分析软件W32Dasm调试器。

实验内容与步骤

1.安装W32DASM,配置W32DASM。

2.加载文件,打开要静态分析的程序文件,如ReverseMe。

3.转到程序入口点,即程序执行的起始点。

4.转到代码开始,即反汇编代码清单中反汇编指令的开始点。

5.转到指定代码的位置。

6.执行文本跳转。

7.执行调用。

8.输入函数,即调用外部dll文件的函数。

9.输出函数。

10.菜单参考,即列出应用程序菜单的相关信息。

11.对话框参考,即列出应用程序调用对话框的信息

12.串式数据参考,即列出程序中相关的字符串、对话等信息。

13.复制汇编代码文本,即打印或复制指定行的汇编代码。

14.装载32位的汇编代码动态调试。

15.单步跟踪程序。

16.设置激活断点。

17.保存反汇编文本文件。

实验说明

静态分析软件W32DASM具体使用方法见教材,要先看懂ReverseMe源程序,分析ReverseMe反汇编代码时要参考ReverseMe源程序。区分反汇编代码中的区块信息、菜单与对话框信息、输入函数信息、输出函数信息、程序代码列表、程序执行入口代码等部分。注意ReverseMe中API函数、提示字符串信息,要尽可能理解反汇编代码中的地址值、转移语句、赋值语句、寄存器中值的变化。要熟悉W32DASM各菜单,功能键的使用。

学生做实验的同时,将实验过程写在实验报告上,课后写实验体会。

实验2 OllyDbg软件动态分析(4学时)

实验目的

1.了解动态分析软件基本功能;

2.了解动态分析软件破解程序基本方法;

3.熟悉OllyDbg使用。

实验环境

Pentium4 1.4G Hz以上CPU,256M以上内存,10G以上硬盘,安装Windows2000以上操作系统,动态分析软件OllyDbg1.10调试器。

实验内容与步骤

1.安装OllyDbg 。

2.执行OllyDbg.exe文件,在OllyDbg窗口上选择“文件(File)”→“打开(Open)”→输入调试的文件名TraceMe。

3. 代码窗口

代码窗口(O11yDbg帮助文件自称反汇编窗口)显示被调试程序的代码。它有四个列;Address(虚拟地址)、Hex dump(机器码)、Disassembly(汇编代码)和Comment (注释)最后一列Comment显示相关API参数或运行简表,单击鼠标右键执行每个选项。

2.信息窗口( Information window)

动态跟踪时,与指令相关的各寄存器值、AP1函数调用提示、跳转提示等信息显示,单击鼠标右键执行每个选项,单击鼠标右键执行每个选项。

3.数据窗口

以十六进制和字符方式显示文件在内存中的数据,类似于SoftICE的数据窗口,单击鼠标右键执行每个选项。

4.寄存器窗口(Registers window)

显示CPU各寄存器的值,支持浮点、MMX,3DNow!寄存器,可以单击鼠标右键切换,单击鼠标右键执行每个选项。

5.堆栈窗口(Stack window)

单击鼠标右键执行每个选项。

6.文件(file)

执行每个选项。

7.查看(view)

执行每个选项。

8.调试(debug)

执行每个选项。

9.选项(option)

执行每个选项。

10.TraceMe实例分析

实验说明

动态分析软件OllyDbg具体使用方法见教材P154-158,也可以看OllyDbg的帮助文挡。要先看懂TraceMe原程序,在实验过程中要重点熟悉OllyDbg功能和使用方法,。

学生做实验的同时,将实验过程写在实验报告上,课后写实验体会。

附录1 TraceMe.cpp源代码

#include

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT("chap231");//通过TEXT定义“chap231”为字符

HWND hwnd ;

MSG msg ;

WNDCLASS wndclass ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc = WndProc ;

wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;

wndclass.hInstance = hInstance ;

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);

wndclass.hbrBackground=(HBRUSH)GetStockObject (WHITE_BRUSH);

wndclass.lpszMenuName = NULL ; //没有菜单

wndclass.lpszClassName = szAppName ; // "chap231"

if (!RegisterClass (&wndclass))//

return 0 ; // wndclass结构注册失败时返回。

hwnd = CreateWindow(szAppName,

TEXT ("静态分析技术实例"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

NULL,

NULL,

hInstance,

NULL);

ShowWindow (hwnd, iCmdShow);

UpdateWindow (hwnd);

while (GetMessage (&msg, NULL, 0, 0))

{ // 当得到消息是do:

TranslateMessage (&msg);

相关文档
最新文档