天天看点

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容

OllyDbg 使用笔记 (一)

参考

书:《加密与解密》

视频:小甲鱼 解密系列 视频

ollydbg下载地址:http://tools.pediy.com/debuggers.htm

hello.exe下载地址:http://pan.baidu.com/s/1c0iYQOC

一、OllyDbg基本界面

图片1

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容
如果按窗口切换按钮出现下面的情况,乱了,只需要双击一个窗口让它全屏就行了。

图片2

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容

二、部分快捷键介绍

F3 : 打开目标文件

F2 : 设置断点

F7:单步步进,遇到CALL跟进

F8:单步步过,遇到CALL路过,不跟进

F9:运行调试程序,直到运行到断点处

F4:运行调试程序,直到运行到光标处

Ctrl+F7/F8 相当于一直按F7/F8

Ctrl+F9 快速跳出函数

Alt+F9 快速跳出系统函数

Ctrl+F2 重新载入程序

在反汇编面板中

;键:写注解

空格键:改变当前的指令

数据面板中

Ctrl+G:打开地址窗口

空格:编辑数据

三、修改hello.exe 中MessageBox的内容

此程序下载地址见 blog开头。

更改下面这个程序的标题和内容

图片3

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容

在OllyDbg中按F3打开hello.exe

按住F8 直到弹出hello窗口

单步运行到004010E9时会停下来,弹出一个MessageBox窗口。

图片4

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容

在这里下一个断点。

再按Ctrl+F2重新载入,再按F9运行到断点处。在F7步进,进入函数中。

我们可以看到

图片5

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容

可以看到4个PUSH和一个CALL

四个PUSH就相当于参数。可以看到右边的注解(OllDbg会根据dll自动注解),这其实是MessageBox的4个参数,由于VC++默认函数是__stdcall 所以参数进栈的顺序是从右往左的。

我们可以看到MessageBox显示的窗口和内容的字符串的地址。同过修改相应地址的内容就可以改变窗口的内容。

在数据面板 按下Ctrl+G s 输入 00406030

鼠标选中要改的地方,按下空格键输入要改动字符。

图片6

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容
由于是调用MessageBoxA(A代表ASCII),所以在ASCII中输入想要字符,记得要以00结尾。例如输入 “哈哈!!”

图片7

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容
再F8 运行程序,运行到call messagebox处,就可以看到MessageBox中的hello被改成了“哈哈!!”

这样修改在重新载入后就会失效。如果想保存到应用程序

选中改过的部分,右键选择复制到可执行程序

图片8

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容
在弹出的窗口中右键选择  备份–>保存数据到文件即可

图片9

欢迎使用CSDN-markdown编辑器一、OllyDbg基本界面二、部分快捷键介绍三、修改hello.exe 中MessageBox的内容