2、软件漏洞挖掘与防护---第一个 win32 程序 hello world 修改

项目二 第一个 win32 程序 hello world 修改

一、 项目环境

VMware Workstation Pro 安装 Windows Server 2008 Datacenter 操作系统。

二、 项目软件工具

1.Microsoft Visual C++ 6.0
2.软件安全动态分析工具 OllyDbg

三、 项目实践

项目需求:
通过 OllyDbg 软件修改 helloworld 程序标题,将原有标题内容”第一个 win32
程序”修改为”Program modified”(程序被修改)。

1.运行 VMware Workstation Pro 的 Windows Server 2008 操作系统,进入操作系统后打开 Microsoft Visual C++ 6.0 软件,新建一个 Win32 Application 工程,工程名为”hello”点击确定,如图 2-1 所示。

在这里插入图片描述
图 2-1 新建 win32 工程

2.在选择创建什么样的 windows 应用程序框中,选择”An empty project”创建一个空项目,点击完成,如图 2-2 所示。

在这里插入图片描述

图 2-2 创建空的 windows 应用程序

3.在左侧工程框中点击右下角的”FileView”文件视图,然后点击 hello files 工程文件下的”Source Files”源文件夹,再到上方工具栏中点击”文件”新建一个 C++源文件,源文件名为”helloworld.c”点击确定,如图 2-3 所示。

在这里插入图片描述

图 2-3 创建 helloworld 的 C++源文件

4.编写一个 win32 应用程序,程序执行后弹出”第一个 win32 程序”,显示提示内容为”hello world!”,程序代码如下所示:
#include <windows.h> 
int WINAPI WinMain (HINSTANCE hinstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow) 
{ 
 	MessageBox(NULL,TEXT(" hello world!"),TEXT("第一个 win32 程序
"),0); 
 	return 0; 
} 
5.编译执行该程序,测试程序运行结果,弹出一个 windows 应用程序框,显示内容为 hello world!,测试结果如图 2-4 所示。

在这里插入图片描述

图 2-4 程序测试结果

6.运行 OllyDbg 软件, 选择文件打开操作( 或按快捷键”F3”), 找到helloworld 程序的存放路径,默认情况下未修改路径,helloworld 程序的路径在C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\hello\Debug, 选择 helloworld 程序点击打开,如图 2-5 所示。

在这里插入图片描述

图 2-5 OllyDbg 运行 helloworld 程序

7.打开程序后,会出现程序的汇编代码,粗略浏览这些汇编代码。浏览完汇编代码以后,使用组合键 Ctrl+F2 重新载入程序回到入口点 OEP。一直按 F8 单步步过快捷键,注意观察窗口各处信息的变化,一直按到出现 windows 程序对话框,此时程序停留在如图 2-6 所示的这条”call 00401005”命令上。

在这里插入图片描述
图 2-6 程序框执行代码处

8.上述”call 00401005”命令,是一条函数调用命令,调用的是 00401005 地址处的 WinMain 主函数,我们在此行命令处按 F2 设下断点(或在此行命令右键点击断点)。使用 Ctrl+F2 重新载入程序,直接按 F9 执行程序运行到断点处,按下 F7 单步步入到 call 调用的 WinMain 函数里面,如图 2-7 所示。

在这里插入图片描述
图 2-7 WinMain 主函数

9.接下来继续按 F8 单步步过,当程序执行到如图 2-8 所示处,此处就是我们需要对这个程序修改的地方。

在这里插入图片描述
图 2-8 程序修改处

10.右键单击修改处该行,选择数据窗口中跟随→立即数,我们此时就能在下方数据窗口当中看到程序标题内容”第一个 win32 程序”,如图 2-9 所示。

在这里插入图片描述
图 2-9 数据窗口中跟随

11.在数据窗口中选中程序标题内容”第一个 win32 程序”,选中后按”空格” 键,会弹出编辑窗口,取消”保持大小”的勾选,此时我们就可以将原有标题内容”第一个 win32 程序”修改为” Program modified”(程序被修改),但是要注意此处是 16 进制数,16 进制数字末尾处应加上 00,因为字符串是以 0 结尾的,点击确定,如图 2-10 所示。

在这里插入图片描述
图 2-10 修改程序标题内容

12.修改完程序内容以后,我们继续按下 F8 单步步过,直到程序窗口弹出,此时我们会看到弹出的程序窗口标题内容从原来的”第一个 win32 程序”变为了”Program modified”,如图 2-11 所示。

图 2-11 修改后的程序
在这里插入图片描述
至此,使用 OllyDbg 软件修改第一个 win32 程序的操作流程结束。

发布了22 篇原创文章 · 获赞 32 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_42250189/article/details/104996381