内存断点原理:OD会对所设置地址设置为不可访问或者不可写属性,这样当程序试图访问或者写入时就会产生异常,OD在截获这种异常后比较地址是否是设置的断点地址,这种方式会对程序的运行速度有很大的影响,所以只允许设置一个内存断点,但是在找到内存断点后可以使用一般的断点(这个是可以设置无数个的)进行调试。
内存断点的实现:
00401007 |. A3 CA204000 mov dword ptr ds:[0x4020CA],eax
对以上中的0x4020CA内存地址进行内存断点,右键数据窗口中跟随->内存地址,然后在内存数据进行设置内存断点
然后运行程序,发现程序会在00401007地址进行断点,如以下图
原因:OD会对所设置地址设置为不可访问或者不可写属性,这样当程序试图访问或者写入时就会产生异常,OD在截获这种异常后比较地址是否是设置的断点地址
取消内存断点
第一种方法:在原来设置的地方进行删除内存断点
第二种方法:随便找一个设置内存断点,然后再删除内存断点
原文:https://www.cnblogs.com/zpchcbd/p/12057304.html