找回密码
 立即注册
查看: 2807|回复: 6

内存断点原理1

[复制链接]

19

主题

167

回帖

1830

积分

高级会员

积分
1830
命运舞姬 发表于 2015-6-25 08:43:40 | 显示全部楼层 |阅读模式
1.前言
发现论坛中很多兄弟在询问:什么是二次内存断点,三次内存断点。还有很多人对内存断点的原理不是很明白。其实只要懂得壳是如何解压代码的,那么就完全可以按自己的喜欢来下断。

本文要解决的问题是:
1.
什么是内存断点?
2.
如何在寻找OEP时使用内存断点。
3.
内存断点的局限性。
2.
内存断点寻找OEP的原理
i.
首先,在OD中内存断点和普通断点(F2下断)是有本质区别的。
内存断点等效与命令bpm,他的中断要用到DR0-DR7的调试寄存器,也就是说OD通过这些DR0-DR7的调试寄存器来判断是否断下
普通断点(F2下断)等效于bpx,他是在所执行的的代码的当前地址的一个字节修改为CCint3)。当程序运行到int3的时候就会产生一个异常,而这个异常将交给OD处理,把这个异常的regEIP-1以后就正好停在了需要的中断的地方(这个根据系统不同会不一样),同时OD在把上面的int3修改回原来的代码。
内存断点分为:内存访问断点,内存写入断点
我们知道,在程序运行的时候会有3种基本的状态产生:读取,写入,执行。
CODE:
004AE242 A100104000 mov eax,dword ptr ds:[004AE24C]    //004AE24C
处的内存读取
004AE247 A300104000 mov dword ptr ds:[004AE24C],eax    //004AE24C
处的内存写入
004AE24C 83C001    add eax,1       //004AE24C
处的内存执
[Copy to clipboard]
那么我们应该如何中断在上面的几行呢?
1.
当我们对004AE24C下内存访问断点的时候,可以中断在004AE242也可以中断在004AE247
2.
当我们对004AE24C下内存写入断点的时候,只能中断在004AE247
3.
当我们对004AE24C下内存访问断点的时候,能中断在004AE24C
到这里你可能不明白了,为什么内存访问断点能中断在004AE247这一句对004AE24C的写入,而且还能中断在004AE24C的执行呢?
其实很简单,我们只要仔细体会一下内存访问这四个字的含义遍可以知道,当我们对004AE24C进行读取的时候需要访问他吧,当我对004AE24C进行写入的时候也需要访问他吧!!当然我们要执行内存地址004AE24C的代码的时候也是还是要访问他的!
所以我们不难得出下面的结论:
1.
内存写入中断的地方,一定是也可以用内存访问中断。
2.
内存执行的地方,也可以用内存访问中断。

如果这时你认为,那么内存写入岂不是没用了。呵呵~那我要告诉你当然不是,如果你想快速的准确的定位到004AE247这一行的时候,那么他就大有作用了!
总结一下:内存断点不修改改原代码,不会像普通断点那样因为修改代码被程序校验而导致中断失败;对于区段的访问只是区域大了一点,其原理和上面分析的三行代码是一样的。



10

主题

143

回帖

561

积分

高级会员

积分
561
小云天 发表于 2015-6-26 18:07:37 | 显示全部楼层
谢谢分享谢谢分析
回复

使用道具 举报

7

主题

215

回帖

959

积分

高级会员

积分
959
nikkitang 发表于 2015-6-27 17:02:29 | 显示全部楼层
每天坚持学习,慢慢进步,加油!
回复

使用道具 举报

2

主题

28

回帖

108

积分

注册会员

积分
108
虫虫♂地主 发表于 2015-7-4 13:21:28 | 显示全部楼层
项一下
回复

使用道具 举报

2

主题

20

回帖

56

积分

注册会员

积分
56
疯狂 发表于 2015-12-4 09:58:58 | 显示全部楼层
每天坚持学习,慢慢进步,加油!
回复

使用道具 举报

1

主题

192

回帖

1328

积分

高级会员

积分
1328
找个人来爱 发表于 2015-12-8 17:10:38 | 显示全部楼层

每天坚持学习,慢慢进步,加油!
回复

使用道具 举报

2

主题

43

回帖

60

积分

注册会员

积分
60
332936 发表于 2017-12-15 11:25:37 | 显示全部楼层
每天坚持学习,慢慢进步,加油!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|虫虫联盟 ( 备案号:蜀ICP备15018121号-1 )

GMT+8, 2026-4-18 19:26 , Processed in 2.566061 second(s), 27 queries .

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表