首页
社区
课程
招聘
[已解决]菜鸟问一个anti debug的问题,int3没啦
发表于: 2007-9-1 14:39 6171

[已解决]菜鸟问一个anti debug的问题,int3没啦

2007-9-1 14:39
6171
某程序,我在某处下了断点,然后触发断点。
但是有时候od却没有动作了,然后我看断点还在那,然后F2重新取消再设置断点,
od报告说“断点已损坏”。
重新设置的断点隔了一段时间后又损坏了。
所以我想是程序里面的anti在搞鬼,每隔一段时间就扫描这段代码区,然后把所有的int 3指令换回原来的代码了,所以导致断点损坏。
高人请指教如何来对付这种anti?
如果说是要找出程序里面哪段代码把int 3指令删了,改如何找?

另外我把od插件ollyAdvanced中的“忽略被修改的断点处内存”和“采用具有灵活性的断点”打开都对此无效,因为我要对做全局的hit跟踪的话(ollyHTML)的话,断点损坏后,od的报“断点损坏”错对话框一个接一个,只能强制close,不能继续调试了。

高人们指导下把,谢谢!

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

收藏
免费
支持
分享
最新回复 (6)
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
enable write breakpoint.
catch code up she.
2007-9-1 14:56
0
雪    币: 241
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
1.写内存write断点,在代码的内存区域里面?
2.不明白第二句
2007-9-1 15:02
0
雪    币: 241
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
解决方法如下:
1.找到程序会恢复代码的其中一个地址
2.在这个代码地址里面下硬件写断点
3.在程序里面执行若干操作后(F2断点不能去掉)直到引发硬件写断点
段在:004431A1,往上往下翻翻代码,结果如下:
00443160  |.  8D3C10        |LEA EDI,DWORD PTR DS:[EAX+EDX]
00443163  |.  8D44E9 04     |LEA EAX,DWORD PTR DS:[ECX+EBP*8+4]
00443167  |.  33D2          |XOR EDX,EDX
00443169  |.  897C24 14     |MOV DWORD PTR SS:[ESP+14],EDI
0044316D  |.  8B08          |MOV ECX,DWORD PTR DS:[EAX]
0044316F  |.  F3:A6         |REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]         ;  判断代码是否改变
00443171      EB 4E         JMP SHORT elementc.004431C1                            ;  直接JMP掉
00443173  |.  8B10          |MOV EDX,DWORD PTR DS:[EAX]
00443175  |.  8D4C24 10     |LEA ECX,DWORD PTR SS:[ESP+10]
00443179  |.  51            |PUSH ECX                                              ; /pOldProtect
0044317A  |.  6A 40         |PUSH 40                                               ; |NewProtect = PAGE_EXECUTE_READWRITE
0044317C  |.  52            |PUSH EDX                                              ; |Size
0044317D  |.  53            |PUSH EBX                                              ; |Address
0044317E  |.  FF15 C4E18400 |CALL DWORD PTR DS:[<&KERNEL32.VirtualProtect>]        ; \VirtualProtect
00443184  |.  85C0          |TEST EAX,EAX                                          ;  这就是判断你有没有在这个内存地址里面写int3(F2)断点,用VirtualProtect呵呵
00443186  |.  74 39         |JE SHORT elementc.004431C1
00443188  |.  A1 98D89000   |MOV EAX,DWORD PTR DS:[90D898]
0044318D  |.  8B7424 14     |MOV ESI,DWORD PTR SS:[ESP+14]
00443191  |.  8BFB          |MOV EDI,EBX
00443193  |.  8B4CE8 04     |MOV ECX,DWORD PTR DS:[EAX+EBP*8+4]
00443197  |.  8D4424 10     |LEA EAX,DWORD PTR SS:[ESP+10]
0044319B  |.  8BD1          |MOV EDX,ECX
0044319D  |.  50            |PUSH EAX                                              ; /pOldProtect
0044319E  |.  C1E9 02       |SHR ECX,2                                             ; |
004431A1  |.  F3:A5         |REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]        ; |
004431A3  |.  8BCA          |MOV ECX,EDX                                           ; |
004431A5  |.  83E1 03       |AND ECX,3                                             ; |
004431A8  |.  F3:A4         |REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]          ; |
004431AA  |.  8B15 98D89000 |MOV EDX,DWORD PTR DS:[90D898]                         ; |
004431B0  |.  8B4C24 14     |MOV ECX,DWORD PTR SS:[ESP+14]                         ; |
004431B4  |.  51            |PUSH ECX                                              ; |NewProtect
004431B5  |.  8B44EA 04     |MOV EAX,DWORD PTR DS:[EDX+EBP*8+4]                    ; |
004431B9  |.  50            |PUSH EAX                                              ; |Size
004431BA  |.  53            |PUSH EBX                                              ; |Address
004431BB  |.  FF15 C4E18400 |CALL DWORD PTR DS:[<&KERNEL32.VirtualProtect>]        ; \VirtualProtect

程序里面还有其他的检测,遇到再说把。谢谢。
2007-9-1 22:05
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
5
武林外传。
这个的确很好过。
2007-9-1 23:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
完全看不懂的东西就要留个名   以后在看
2007-9-2 03:31
0
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
呵呵,这各算是小儿科了。在OD中直接修改VirtualProtect函数,让他不作任何事情就返回。然后你下你的断点就是了。
2007-9-3 10:24
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册