OllyDbg 使用笔记 (一)
来源:互联网 发布:java 泛型 t.class 编辑:程序博客网 时间:2024/06/05 14:32
转载地址:http://blog.csdn.net/billvsme/article/details/38305839
目录(?)[-]
- 一OllyDbg基本界面
- 二部分快捷键介绍
- 三修改helloexe 中MessageBox的内容
OllyDbg 使用笔记 (一)
参考
书:《加密与解密》
视频:小甲鱼 解密系列 视频
ollydbg下载地址:http://tools.pediy.com/debuggers.htm
hello.exe下载地址:http://pan.baidu.com/s/1c0iYQOC
一、OllyDbg基本界面
图片1
如果按窗口切换按钮出现下面的情况,乱了,只需要双击一个窗口让它全屏就行了。
图片2
二、部分快捷键介绍
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
在OllyDbg中按F3打开hello.exe
按住F8 直到弹出hello窗口
单步运行到004010E9时会停下来,弹出一个MessageBox窗口。
图片4
在这里下一个断点。
再按Ctrl+F2重新载入,再按F9运行到断点处。在F7步进,进入函数中。
我们可以看到
图片5
可以看到4个PUSH和一个CALL
四个PUSH就相当于参数。可以看到右边的注解(OllDbg会根据dll自动注解),这其实是MessageBox的4个参数,由于VC++默认函数是__stdcall 所以参数进栈的顺序是从右往左的。
我们可以看到MessageBox显示的窗口和内容的字符串的地址。同过修改相应地址的内容就可以改变窗口的内容。
在数据面板 按下Ctrl+G s 输入 00406030
鼠标选中要改的地方,按下空格键输入要改动字符。
图片6
由于是调用MessageBoxA(A代表ASCII),所以在ASCII中输入想要字符,记得要以00结尾。例如输入 “哈哈!!”
图片7
再F8 运行程序,运行到call messagebox处,就可以看到MessageBox中的hello被改成了“哈哈!!”
这样修改在重新载入后就会失效。如果想保存到应用程序
选中改过的部分,右键选择复制到可执行程序
图片8
在弹出的窗口中右键选择 备份-->保存数据到文件即可
图片9
- OllyDbg 使用笔记 (一)
- OllyDbg 使用笔记 (一)
- OllyDbg 使用笔记 (二)
- OllyDbg 使用笔记 (三)
- OllyDbg 使用笔记 (四)
- OllyDbg 使用笔记 (五)
- OllyDbg 使用笔记 (六)
- OllyDbg 使用笔记 (七)
- OllyDbg 使用笔记 (八)
- OllyDbg 使用笔记 (九)
- OllyDbg 使用笔记 (十)
- OllyDbg 使用笔记 (十一)
- OllyDbg 使用笔记 (十二)
- OllyDbg 使用笔记 (十三)
- OllyDbg 使用笔记 (十四)
- OllyDbg 使用笔记 (十五)
- OllyDbg 使用笔记 (十六)
- OllyDbg 使用笔记 (十七)
- HDU3008 Warcraft(发技能打BOSS)
- 框架学习之spring整合struts2、hibernate-02AOP编程
- BZOJ2039 employ人员雇佣
- 强迫症简易自测量问卷系统
- 20170731 JAVA数组练习题:加密传输
- OllyDbg 使用笔记 (一)
- 杭电acm1219 统计字母出现次数
- Java网络编程概述
- G. Snake Rana 容斥原理
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
- 屏蔽字工具类 Java读取Excel工具类 读取到内存中
- java(5)循环结构
- 比特币扩容分叉及半路杀出的BCC事件始末
- uva11292--贪心