实验 2 软件动态、静态分析技术
练习 1 动态调试技术
1、实验说明
动态分析是在可控环境中运行程序或者模拟程序的执行过程,同时利用分 析工具,监控程序的所有操作,观察其执行流程和状态,获取执行过程中的各 种数据。调试则是一种最为重要的动态分析技术,能够获取程序的真实行为, 以及指令执行过程中各个操作数的具体值。
2、实验目的
本实验使用 OllyDbg 调试器, 分析简单注册程序(TraceMe.exe) TraceMe.exe百度网盘地址(提取码1111),获得正 确的序列号或者修改程序逻辑, 以此学习调试 Win32 应用程序的相关技术。
3、实验原理
课程第 3 讲动态分析技术
4、实验环境
Windows 桌面系统,OllyDbg
5、实验内容
(1)通过调试,获取正确的序列号;
(2)修改指令,破解注册验证。
6、实验步骤
(1)加载被调试程序
有两种方式加载被调试程序:
打开 OllyDbg ,通过"File – Open"菜单项打开被调试程序;
运行被调试程序,打开 OllyDbg ,通过"File – Attach"菜单项附加被调 试程序的进程。
(2)下断点
在反汇编面板中通过快捷键"Ctrl+G"打开"跟随表达式"窗口,找到 GetWindowTextA 函数的入口地址,按下 F2 快捷键在入口处下断点;
(3)输入用户名和序列号
按下 F9 快捷键运行程序,在程序窗口中输入用户名和序列号,然后单击 "Check"按钮;
(4)分析
程序在 GetWindowTextA 函数的入口地址处暂停,按下 F2 快捷键,取消该处的断点,之后按下"Alt+F9"快捷键,从系统代码空间返回用户代码空间。
找到紧跟在两次调用 GetDlgItemTextA 函数之后的调用用户自定义函数处,按下 F4 快捷键运行到该处;或者以 F8 单步跟踪的方式,运行