OllyDBG 入门系列(四)-内存断点
2010-09-30 16:54:11 来源:WEB开发网核心提示: 我们现在知道ESI寄存器的值是从内存地址40339C中送过来的,那内存地址40339C中的数据是什么时候产生的呢?大家注意,OllyDBG 入门系列(四)-内存断点(2),我这里信息窗口中显示的是DS:[0040339C]=9FCF87AA,你那可能是DS:[0040339C]=XXXXXXXX
我们现在知道 ESI 寄存器的值是从内存地址 40339C 中送过来的,那内存地址 40339C 中的数据是什么时候产生的呢?大家注意,我这里信息窗口中显示的是 DS:[0040339C]=9FCF87AA,你那可能是 DS:[0040339C]=XXXXXXXX,这里的 XXXXXXXX 表示的是其它的值,就是说与我这里显示的 9FCF87AA 不一样。我们按上图的操作在数据窗口中看一下:
从上图我们可以看出内存地址 40339C 处的值已经有了,说明早就算过了。现在怎么办呢?我们考虑一下,看情况程序是把这个值算出来以后写在这个内存地址,那我们要是能让 OllyDBG 在程序开始往这个内存地址写东西的时候中断下来,不就有可能知道目标程序是怎么算出这个值的吗?说干就干,我们在 OllyDBG 的菜单上点 调试->重新开始,或者按 CTR+F2 组合键(还可以点击工具栏上的那个有两个实心左箭头的图标)来重新载入程序。这时会跳出一个“进程仍处于激活状态”的对话框(我们可以在在调试选项的安全标签下把“终止活动进程时警告”这条前面的勾去掉,这样下次就不会出现这个对话框了),问我们是否要终止进程。这里我们选“是”,程序被重新载入,我们停在下面这一句上:
编缉推荐阅读以下文章
- OllyDBG 入门系列(五)-消息断点及 RUN 跟踪
- OllyDBG 入门系列(三)-函数参考
- OllyDBG 入门系列(二)-字串参考
- OllyDBG 入门系列(一)-认识OllyDBG
更多精彩
赞助商链接