首页
社区
课程
招聘
[求助]调试某程序时遇到的Anti-Debug, 求各位大牛帮忙想想对策
发表于: 2014-7-25 05:59 4007

[求助]调试某程序时遇到的Anti-Debug, 求各位大牛帮忙想想对策

2014-7-25 05:59
4007
在调试某程序时遇到的Anti-Debug, 使用OllyDbg下断后(不论是软件断点还是硬件断点), 程序正常断下了(可以认为OllyDbg是收到了调试事件的), 此时可以进行各种调试, F9跑起来后程序立马就崩了, 其报告的异常地址正是我下断点的位置, 如下图所示:




有的线程断下了不会崩溃, 有的会崩溃(主线程随便断都不会崩溃), 所以可以认为这道Anti应该是针对特定线程的

按照正常的调试逻辑来说, 其过程应当如下:
执行到INT3断点---程序中断---控制权交给调试器---F9运行后调试器报告已成功处理此次异常---程序继续运行

但是这症状就很像是调试器告诉了Windows自己并未成功处理该异常, 接着Windows就把这个进程判了死刑..弹出窗口告知用户, 找了点资料, 发现有网友说NtSetInformationThread的ThreadHideFromDebugger参数可以导致这样的症状, 看了下WRK的代码, 实际上这个函数是设置了ETHREAD->CrossThreadFlags变量, 于是拿出Windbg查看该程序各个线程的ETHREAD结构, 但是其所有线程的CrossThreadFlags均为80h, 所以也可以排除ThreadHideFromDebugger在捣蛋, 实在没辙了, 求各位大牛帮忙出出对策, 小弟在此先行谢过

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道是什么程序,不过我前几天处理一个程序的时候,也发生这样的事情,不过既然是下断点的时候出现这个问题,那么就更下断点有关,主要是,你下断点他没有事情,你点继续了,他就出现这个问题了,那么坑定就是被他检查到了,所以关键还是要处理一下检查硬件断点这些地方,其实很好解决的,你研究一下,就可以过去了
2014-7-25 07:51
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
只能作参考,凡是要靠你自己,我也是新手,刚学,见笑了!!
2014-7-25 07:52
0
雪    币: 459
活跃值: (398)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
只测试了头部下断?往下的位置会不会也这样?感觉总不能全部都检测吧,往下的地方有没有call xxxxxxxx 的进去下断看看
2014-7-25 08:36
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
od 反调试的插件试试
2014-7-25 08:48
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Strong插件的全部选项都已经开启了
2014-7-25 15:57
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感觉应该不是内存校验, 因为对数据下硬件读写断点也会导致相同的结果..
2014-7-25 15:58
0
游客
登录 | 注册 方可回帖
返回