找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2158|回复: 6

内存断点原理1

[复制链接]
  • TA的每日心情
    难过
    2017-11-14 11:03
  • 签到天数: 43 天

    [LV.5]常住居民I

    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这一行的时候,那么他就大有作用了!
    总结一下:内存断点不修改改原代码,不会像普通断点那样因为修改代码被程序校验而导致中断失败;对于区段的访问只是区域大了一点,其原理和上面分析的三行代码是一样的。



  • TA的每日心情

    2019-4-25 22:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    10

    主题

    142

    回帖

    557

    积分

    高级会员

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

    使用道具 举报

  • TA的每日心情

    2017-2-2 12:17
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    215

    回帖

    959

    积分

    高级会员

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

    使用道具 举报

    该用户从未签到

    2

    主题

    28

    回帖

    108

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-7-5 23:07
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    2

    主题

    20

    回帖

    56

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-5-15 11:06
  • 签到天数: 161 天

    [LV.7]常住居民III

    1

    主题

    192

    回帖

    1328

    积分

    高级会员

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

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

    使用道具 举报

  • TA的每日心情

    2017-12-22 11:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    43

    回帖

    60

    积分

    注册会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-21 22:55 , Processed in 0.426670 second(s), 27 queries .

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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