大家好,又见面了,我是你们的朋友全栈君。
目录
一、OllyDbg基本知识
1.1简介
1.2窗口界面
1.2.1窗口组成
1.2.2窗口功能
1.3常用快捷键
二、测试修改实例
2.1测试内容
2.2测试环境
2.3测试程序
2.4测试步骤
2.4.1将程序载入OD
2.4.2定位内存地址
2.4.3修改内容
2.5测试结果
三、小结
一、OllyDbg基本知识
1.1简介
OllyDbg是一种具有可视化界面的汇编分析调试器,是一个支持插件扩展功能的动态追踪工具。
1.2窗口界面
1.2.1窗口组成
该窗口界面(CPU)由下图所示的5个子窗口组成:
1.2.2窗口功能
反汇编窗口:显示被调试程序的反汇编代码,包括地址栏、HEX数据栏(机器码)、汇编指令 栏、注释栏。
寄存器窗口:显示CPU各个寄存器的值。
信息窗口:显示与指令相关的各寄存器的值、API函数调用提示和跳转提示等信息。
数据窗口:显示内存数据,包括地址栏、十六进制数据栏、ASCII栏。
堆栈窗口:显示当前线程的堆栈。
1.3常用快捷键
F2:设置或取消设置断点
F3:加载一个可执行程序,进行分析调试
F4:程序执行到光标处
F7:单步步入,遇到call指令跟进
F8:单步步过,遇到call指令不跟进
F9:运行程序到断点处
Ctrl F2:重新执行程序到起始处
Ctrl F9:执行到函数返回
Ctrl E:编辑内存内容
Ctrl G:输入地址,进行定位
Alt F9:执行到用户代码
二、测试修改实例
2.1测试内容
本测试完成对弹窗程序中MessageBox标题与内容的修改。
2.2测试环境
Windows 10、VS 2017(没有特定的版本,无论是win7还是vs 2015影响都不大)
2.3测试程序
测试程序为一个弹窗的exe程序,源码如下:
代码语言:javascript复制#include<Windows.h>
int main() {
MessageBox(0,"test","hello world",MB_OK);
return 0;
}
2.4测试步骤
2.4.1将程序载入OD
通过快捷键F3或者左上角“file->open”载入程序
2.4.2定位内存地址
1.找到“hello world”的位置,双击所在行的汇编指令栏(第三列),得到存储字符串的内存地址
2.在数据窗口按“ctrl G”键搜索地址
3.同样的方法定位“test”的地址
2.4.3修改内容
按“ctrl E”键对内容进行修改,修改过程中注意将keep size的“√”去掉、字符串最后用“00”填充。
2.5测试结果
修改前:
修改后:
三、小结
OllyDbg通常用于程序的逆向工程(比如游戏开挂,是一种流行的调试器,需要用户具备汇编语言的知识。
网上有很多版本的OD,以及五花八门的插件,大家注意识别,可能有些捆绑了恶意软件。推荐从吾爱激活成功教程或者看雪论坛上面下载。
大家有问题的可以评论区留言or私信博主,博主全天24小时在线!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193551.html原文链接:https://javaforall.cn