能力值:
(RANK:260 )
|
-
-
2 楼
硬件断点是用386CPU中的TR寄存器实现的
由于是硬件实现的,所以对于断点的要求很严格,
由于INTEL的386指令集中分为字节操作、字操作以前双字操作
所以对于硬件断点这个条件必须合适
比如,对于字操作的指令,它的操作数地址必须是字对齐的,或者说字节地址的LSB是0
同样,如果是双字操作,操作数地址应该是双字对齐的
不过你说的情况我还真没遇到过
上面说的只是猜测,不一定对
而如果用OD软件设置的内存断点,只需要选定内存中的范围,则任何对这个区域的内存操作都会触发断点
当然软件的内存断点,我猜OD使用的是TRACE方法实现的,因此程序的执行不会是全速的了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
楼上的说的我是明白的,后来原因也清楚了.是被虚拟机保护了.
我经验尚浅,不知道为什么被虚拟机加密之后会硬件断不下来.不过原因也不是那么重要的了.
谢谢楼上的.
|
能力值:
(RANK:260 )
|
-
-
4 楼
也许是虚拟机对CPU的模拟不是太完善吧
毕竟硬件的工作与软件的工作过程有区别
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我是新注册用户,不能发帖,只能这样提问
我是个绝对菜鸟,看了蛮多给新手的帖子
目前最入门的问题还是OD使用
每次退出都有警告,说进程激活之类的,还有就是怎么让程序回到初始状态
我分析前就复制了文件,结果我打开备份的文件原先设的断点都还在
帮我解决下这些小细节问题吧各位大虾
|
|
|