首页
社区
课程
招聘
[求助]如何判断是否下了断点
发表于: 2012-12-12 09:34 4372

[求助]如何判断是否下了断点

2012-12-12 09:34
4372
做一个CrackMe练习的时候,碰到一个判断是否下了断点的程序,我想问一下大家这是如何判断的?
00401519   $  BF 96124000   mov     edi, 00401296                    ;  Entry address
0040151E   .  B9 00010000   mov     ecx, 100
00401523   .  B0 99         mov     al, 99
00401525   .  34 55         xor     al, 55
00401527   .  F2:AE         repne   scas byte ptr es:[edi]
00401529   .  85C9          test    ecx, ecx
0040152B   .  74 06         je      short 00401533
0040152D   .  5E            pop     esi
0040152E   .  33F6          xor     esi, esi
00401530   .  57            push    edi
00401531   .^ EB C2         jmp     short 004014F5
00401533   >  C3            retn

这里为什么下断点的话,ZF会等于1呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
扫描0x401296处开始的0x100个字节是否有0xCC
2012-12-12 10:13
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
完成的作用我已经知道了,只是不知道OD如何把断点处设置为0XCC,这个设置存储在哪里?
2012-12-12 10:18
0
雪    币: 14
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对于软断点而言:
debugger需要 修改断点处的代码为0xcc,相当于__asm{int 3},同时备份端点处的原始指令;
执行到端点处的时候,0xcc指令触发cpu的int 3中断事件,程序暂停,debugger处理该事件,同事查询存储的的端点列表,还原原来的指令,然后,然后,就是我们看到的东西了。

ps:《python 灰帽子》一书有两章介绍调试器原理及简单实现的介绍。
2012-12-12 10:35
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
5
你用硬断就行了
在要下断的指令上右键-断点-硬件执行

od的断点管理是透明的,你看不到也不用关心
只需要知道,当有内存检测的时候,不要使用软断点

如果你确实想看这个位置是否被修改为cc的话,换个别的程序来看被调试进程的内存
比如xt,扫描进程钩子就能看到
2012-12-13 10:05
0
游客
登录 | 注册 方可回帖
返回
//