首页
社区
课程
招聘
[求助]关于OD 利用 int 3 下断的疑问?????
发表于: 2009-8-2 10:11 4696

[求助]关于OD 利用 int 3 下断的疑问?????

2009-8-2 10:11
4696
有个问题,我得请教一下,od 的F2利用int 3下断点,书上是这么说的:当执行一个int 3断点时,该地址处的内容被调试器用int3 指令替换了,这个指令的机器码是CCh.当被调试的进程执行int3 指令时导致一个异常时,调试器会捕捉这个异常从而停在断点处,然后将断点处的指令恢复原来的指令。可是我下断点前后,观察那个内存处,内存中数据,始终没变
比如:
000010: add bx,ax                  //这里的地址,我是随便打的,只是打个比方。
我就在10这里下一个断点。
在下该断点前前后后,我都一直在刷新该地址内存,内存10里面的数据,根本没变,书上是说,
如果在10这个地方下断点,应该是换上CC机器码。断完后再恢复原指 令

有高人解答一下吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 108
活跃值: (56)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
//"DOS"程序,想了半天,终于利用书上的知识,用下面的程序解答自己的疑问
#include "windows.h"
void A();
main()
{        //OD加载本程序时,会在入口处停处,此时去找到A地址,进行下断点
        byte *p;
        p=(byte *)A;
        if (*p==0xcc)
                MessageBoxA(0,TEXT("A处被下断"),TEXT("~~~~"),0);
        A();        //在OD里找到A函数地址,进行下断,上面就能检测出来了
       
}
void A(void)
{       
        int a=1;
        a=a+1;
        MessageBoxA(0,TEXT("~~A~~~"),TEXT("FUN!"),0);
}
//程序,确实检测到了下断的时候,被替换成了,CC指令!OD不旦指令窗口隐藏CC指令,连内存中的数据都隐藏。。
2009-8-2 11:47
0
游客
登录 | 注册 方可回帖
返回
//