吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2168|回复: 16
收起左侧

[讨论] 关于ximo教程里的2次内存镜像法

  [复制链接]
子晗。 发表于 2019-8-17 20:48
本帖最后由 子晗。 于 2019-8-18 18:01 编辑

最近刚刚开始自学,跟着论坛的教程,看到ximo的脱壳基础里的手脱UPX,视频里的方法3:2次内存镜像法,先是在.rsrc处F2设置断点,然后运行,跳转正常,和视频中一样,来到了此处
1.png

但是在回去设置第二次断点后,出现问题,运行后仍然跳转到了此处,并且向下单步步过也会出现问题。
在论坛里搜索了一下,发现有一个帖子说是OD问题,换了个OD就可以了,链接https://www.52pojie.cn/thread-210105-1-1.html
本人用的是论坛专版虚拟机内提供的OD,并不是很想换,在经过几次尝试后发现,将原教程的用F2设置的断点,即,在访问上设置中断,
都更换为右键菜单里的,设置内存访问断点,即,两次断点都换为设置内存访问断点

2.png

然后再运行,就可以在第二次运行后成功跳转到视频中正确的位置,注意,这里要及时清除内存断点

3.png

接下来就可以继续按照视频教程中的操作了。
虽然问题解决了,不,应该说目的达到了,但是本新手并没有能够理解这个使用F2设置的断点和内存访问断点的区别,
所以在此请教一下各位高手,这两个有何区别呢,又是什么原理呢,表示不解。。。。提前感谢解答。

更新:
在看雪论坛的帖子里找到了对F2断点和内存断点的分析,内容如下
内存断点寻找OEP的原理
    首先,在OD中内存断点,硬件断点和普通断点(F2下断)是有本质区别的。硬件断点等效与SoftICE命令bpm,他的中断要用到DR0-DR7的调试寄存器,也就是说OD通过这些DR0-DR7的调试寄存器来判断是否断下。
    普通断点(F2下断)等效于bpx,他是在所执行的的代码的当前地址的一个字节修改为CC(int3)。当程序运行到int3的时候就会产生一个异常,而这个异常将交给OD处理,把这个异常的regEIP-1以后就正好停在了需要的中断的地方(这个根据系统不同会不一样),同时OD在把上面的int3修改回原来的代码。
  而内存断点基本上使用的是对代码使用的保护属性来实现中断。

  内存断点分为:内存访问断点,内存写入断点。
  我们知道,在程序运行的时候会有3种基本的状态产生:读取,写入,执行。

004AE242     A1 00104000       mov eax,dword ptr ds:[004AE24C]            //004AE24C处的内存读取
004AE247     A3 00104000       mov dword ptr ds:[004AE24C],eax            //004AE24C处的内存写入
004AE24C     83C0 01               add eax,1                                                  //004AE24C处的内存执行
  
  那么我们应该如何中断在上面的几行呢?
  1.当我们对004AE24C下内存访问断点的时候,可以中断在004AE242也可以中断在004AE247。
  2.当我们对004AE24C下内存写入断点的时候,只能中断在004AE247。
  3.当我们对004AE24C下内存访问断点的时候,能中断在004AE24C。

  到这里你可能不明白了,为什么内存访问断点能中断在004AE247这一句对004AE24C的写入,而且还能中断在004AE24C的执行呢?

  其实很简单,我们只要仔细体会一下“内存访问”这四个字的含义遍可以知道,当我们对004AE24C进行读取的时候需要“访问”他吧,当我对004AE24C进行写入的时候也需要“访问”他吧!!当然我们要执行内存地址004AE24C的代码的时候也是还是要“访问”他的!

  所以我们不难得出下面的结论:
  1.内存写入中断的地方,一定是也可以用内存访问中断。
  2.内存执行的地方,也可以用内存访问中断。
  如果这时你认为,那么内存写入岂不是没用了。呵呵~那我要告诉你当然不是,如果你想快速的准确的定位到004AE247这一行的时候,那么他就大有作用了!

  总结一下:内存断点不修改原代码,不会像普通断点那样因为修改代码被程序校验而导致中断失败;对于区段的访问只是区域大了一点,其原理和上面分析的三行代码是一样的。

免费评分

参与人数 5吾爱币 +5 热心值 +4 收起 理由
10467106 + 1 谢谢@Thanks!
Appassionata + 1 + 1 谢谢@Thanks!
学着 + 1 + 1 谢谢@Thanks!
初心701 + 1 + 1 谢谢@Thanks!
小白1只吖 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

稚初 发表于 2019-8-17 21:02
我已经好多次了 完全跟着基础教程走 然而走的不对 不知道为什么 我昨天学的那个破解某白加速器 下时间断点 F9运行 回车跟随 这都是对的 然而跟进去 搜索中文的时候3个搜索方式都是乱码 我试了不下30次了 都这样 反而进去什么都不做 直接右键搜中文字符串的时候成功了 然后剩下的跟教程一样 然而没有时间断点哪些 破解了也用不了
稚初 发表于 2019-8-18 14:46

我也想知道 我是沙发丫我头上没人啊  另外我真的很蛋疼 好几次跟着人家的纯基础教程跟着走 OD跟虚拟机也是一样的 然而跟着步骤走 就是OD数据跟教程的不对 很打击信心
 楼主| 子晗。 发表于 2019-8-17 21:22
稚初 发表于 2019-8-17 21:02
我已经好多次了 完全跟着基础教程走 然而走的不对 不知道为什么 我昨天学的那个破解某白加速器 下 ...

唉,咱太难了,真的难顶
jidesheng6 发表于 2019-8-17 21:52
本帖最后由 jidesheng6 于 2019-8-17 21:53 编辑

不用从脱壳开始学,出去看鲨鱼恒的试试,然后回头来学脱壳也可以的,不然我估计你坚持不了太久。
 楼主| 子晗。 发表于 2019-8-17 22:02
jidesheng6 发表于 2019-8-17 21:52
不用从脱壳开始学,出去看鲨鱼恒的试试,然后回头来学脱壳也可以的,不然我估计你坚持不了太久。

好的,谢谢推荐,有时间去看看
fudashuai 发表于 2019-8-17 22:11
楼主进步神速啊!点个赞!
无闻无问 发表于 2019-8-17 22:33
在区段上,f2为一次性,内存为永久性……有区别
 楼主| 子晗。 发表于 2019-8-17 23:03
无闻无问 发表于 2019-8-17 22:33
在区段上,f2为一次性,内存为永久性……有区别

好的,谢谢,但是我还是不太能理解为何视频教程里的F2可以,我就不行
佚丶名 发表于 2019-8-18 00:42
有点厉害啊楼主
 楼主| 子晗。 发表于 2019-8-18 10:36
夜看星空 发表于 2019-8-18 10:29
你们两个是真的难,楼上那个发了3个帖子,被我吊了3次。

吊了3次是啥意思
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 00:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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