反汇编调试工具使用--使用OllyDBG
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件安全实验报告
二零二零年
使用OllyDBG
实验环境:操作系统:Windows10
Ollydbg调试简单的helloworld程序
实验步骤:
原理: OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,同时还支持插件扩展功能,是目前最强大的调试工具。OllyDbg发行版是一个ZIP压缩包,只要解压运行OllyDbg.exe即可。运行OllyDbg打开进程,界面主要由代码窗口、数据窗口、寄存器、堆栈窗口组成。
1.调试用VC++编写的helloworld程序,在反汇编代码中查找main 函数,MessageBox函数;
#include "windows.h"
#include "tchar.h"
int _tmain(int argc, TCHAR * argv[])
{
MessageBox(NULL,"Hello World!","bcbobo21cn",MB_OK);
return 0;
}
2.在调试工具条上右击,选择组建;
在弹出的组建对话框中,选择 Win32 Release;
把HelloWorld编译为release版本。
3.启动Ollydbg ;打开前面的helloworld程序;
4.停留在00401020处;
5.调试器停止的地点是EP代码,EP即入口点;再往下找找;
6.再往下,看到了调用GetVersion函数,GetCommandLineA函数;获取命令行参数之后,应该就到main函数了;
7.看到上面CALL 00401000;
查看00401000;
看到了VC程序中给出的参数;00401000处先PUSH了4个参数入栈,然后调用了USER32中的MessageBoxA;
三、实验总结
OllyDbg是3级调试工具,与当年的TRW2000(RING 0级调试工具)齐名,用的人很多。上手容易,但只能用来搞32位程序,作者已不再更新。
本实验使用Ollydbg软件查看运行了代码并写入内存。让我了解了这种软件的具体使用方法,受益匪浅。