汇编逆向00——OD调试器(断点)
本帖最后由 零度非安全 于 2017-6-12 18:49 编辑本系列开发环境
操作系统:xp
开发环境:vc++6.0
涉及工具:吾爱 OD 调试器
需要条件:OD 工具的使用,一定的 C/C++ 基础以及汇编知识,熟悉 windows SDK 基本 API 函数
关于操作系统,因本人现在的电脑装了个纯 Linux 操作系统,为了学习汇编逆向,我就在 VisualBox 下装了个 XP 系统,装
个 XP系统相信难不倒你们吧,我自个儿认为 XP 是 Windows 家族中我看着心里挺舒服的一个系统,因为“插屁”嘛 ^_^
让大家看下我的“插屁”系统{:5_92:}
送给你们几句话!!!
static/image/hrline/1.gif
兴趣是我们最好的老师
兴趣 + 时间 + 坚持 = 成功
成长需要过程,忽在浮少筑高台
static/image/hrline/1.gif
本帖涉及的知识点:
[*]OD 调试器
[*]断点
[*]全局变量赋值的汇编形式
1. OD调试器(全称 Ollydbg)
OD 是一个新的动态追踪工具,将 IDA 与 SoftICE 结合起来的思想,Ring 3 级调试器,非常容易上手,己代替 SoftICE 成为
当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。
以上是百度百科给出的解释,更多信息请萌萌地点我 -----> OLLYDBG 百度百科
1.1 调式方式
1. 用调试器直接打开
2. 附加到已经打开的进程
2. 断点
1. 快捷键:F2(int3)断点
机器码 0xcc,有的也叫 CC 断点,这是最常用的断点
2. 下断点
方法一:直接在选中的行上按下 F2 这样就在当前行指令所在地址下一个 int 3 断点
方法二: bp 指令地址(如果地址是一条指令的中间,那么会出错)需要 CmdBar 这个 OD 插件
3. 给 MessageBoxW 函数下断:
#include <stdio.h>
#include <windows.h>
int a = 1;
int main(void){
MessageBoxW(0,NULL,NULL,MB_OK);
a = 0x889977;
MessageBoxW(0,NULL,NULL,MB_OK);
return 0;
}用 vc++6.0 对上面这段代码编译、链接成 exe 文件,再将其拖入到 OD 中,Ctrl + G 调出跟踪表达式,输入 MessageBoxW
这个是我已编译好了的 exe 文件 ------>
在 内存地址处 77D66534 处下个断点
Ctrl + F2 重新载入,F9 来到断点处,在右下角 CALL 处右键点反汇编窗口跟随
在里面处,我们很清楚地发现很熟悉的东西,那就是 MessageBoxW 函数
两个 MessageBoxW 函数之间那个十六进制数 0x889977 就是我们上面那个在 a = 0x889977; 这条语句
3. 全局变量赋值的汇编形式
我们把 OD 中 0x889977 所对应的 mov dword ptr ds:,0x889977 复制到 VC 中作下比较
由这可知,a = 0x889977 这条对全局变量赋值语句对应汇编中的 mov dword ptr ds:,0x889977
本节笔记完
下一个笔记:汇编逆向01——MOV赋值指令与内联汇编 @小甲鱼 @不二如是 @康小泡 @hacker.jin @joker11111 @摆渡终极鉴黄师 @朝闻夕死 @若余相思 @超凡天赐 @小树 @freeparty @拈花小仙 @新手·ing @ston77 @Minhal 版主带头做笔记~支持~ 写这种笔记还是挺伤脑经的 新手·ing 发表于 2017-6-12 17:48
版主带头做笔记~支持~
非常的 nice{:5_108:} 康小泡 发表于 2017-6-12 18:06
写这种笔记还是挺伤脑经的
哈哈,我是一个非常耐得住性子的人
“不急”是我平常生活中对自已以及对别人说得比较频繁的一个词语{:10_254:} 滋瓷!滋瓷!{:10_281:} 汇编逆向,很棒,强烈支持楼主,加油加油!{:5_106:} joker11111 发表于 2017-6-12 23:02
汇编逆向,很棒,强烈支持楼主,加油加油!
我感觉我发错了板块,我应该发到加密与解密里去 超凡天赐 发表于 2017-6-12 20:37
滋瓷!滋瓷!
{:5_110:} 腻害腻害,向楼主学习 这个给力,排版美观,内容详实,资源诱惑!{:10_256:} {:10_257:}可以的! nice 我要好好学习下,支持楼主! 加油ヾ(o◕∀◕)ノヾ
页:
[1]