首页
社区
课程
招聘
[原创]调戏:Anti硬断的梗(2)
发表于: 2014-10-31 05:32 28783

[原创]调戏:Anti硬断的梗(2)

2014-10-31 05:32
28783

原理:利用了4个硬断位置设置了4个有用的断点~

举例代码如下:(可以4个位置的关系与处理都可以再复杂很多很多倍。)



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

收藏
免费 3
支持
分享
最新回复 (58)
雪    币: 433
活跃值: (1910)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
前排友情出售广告位
顺便近距离抚摸v大
2014-10-31 07:04
0
雪    币: 1557
活跃值: (725)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
占个板凳吧
2014-10-31 07:11
0
雪    币: 13
活跃值: (26)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
第一次离V大那么近
2014-10-31 07:33
0
雪    币: 13274
活跃值: (4326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
早起搬砖搬凳子。。
2014-10-31 07:43
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
昨天还在看你的第一篇文章
2014-10-31 08:43
0
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
学习一下,是不是手工置位dr6的b0,如果是dr1,2,3引发了断点,就不跳,如果是dr0,就跳。
2014-10-31 09:13
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
8
消化下。。。。。。
2014-10-31 09:15
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
没看出精华在哪个?只是很好奇DR7 == 0X455,这个和平常设的不一样而已。难道是为了降低高CPU而故意设计的?
2014-10-31 09:30
0
雪    币: 62
活跃值: (971)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
我哽咽了
2014-10-31 09:32
0
雪    币: 20
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
v校的帖子,得看一下。
2014-10-31 09:51
0
雪    币: 124
活跃值: (469)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
板凳板凳
2014-10-31 10:10
0
雪    币: 376
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
typedef struct _DEBUG_DR6_
{
  union{
    ULONG32 _DR6;
    struct {
      unsigned B0 : 1;
      unsigned B1 : 1;
      unsigned B2 : 1;
      unsigned B3 : 1;
      unsigned Reverted : 9;
      unsigned BD : 1;
      unsigned BS : 1;
      unsigned Reverted2 : 17;
    }st;
  }u;
}DEBUG_DR6, *PDEBUG_DR6;
新手请教下,这段个结构体不懂, unsigned 后面不是应该加 类型 吗 为什么后面没有,那里的变量应该是什么类型的
2014-10-31 11:14
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
好变态,目测没办法pass~
2014-10-31 11:27
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
__try { } __except { }
用ADD添加Filter的说
2014-10-31 12:58
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
不懂啊~我一般不用那种Filter~
那种很烦~
2014-10-31 13:01
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
17
把检测线程干掉就OK了
2014-10-31 14:11
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
只能把主线程干掉了
2014-10-31 14:44
0
雪    币: 218
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
发表下小小的看法,提一个相对难和谐一点的破解方案~

hook fuck_call的调用点
__asm
{
  pushfd
  or dword ptr[esp],0x100
  jmp fuck_call
}

hook fuck_call
__asm
{
popfd
}


普及一下基本知识,TF位置1可触发单步异常,其错误号和硬断异常是一样的
不过V大这个木有判断异常号,直接把fuck_call开头改成int3就可以了~

最后又看了一眼,好像真的哎,将Fuck_call_XX全部改成int3,貌似就完爆了
2014-10-31 15:16
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
20
[QUOTE=djzbxxz;1327546]发表下小小的看法,提一个相对难和谐一点的破解方案~

hook fuck_call的调用点

__asm
{
  pushfd
  or dword ptr[esp],0x100
  jmp fuck_call
}

hook fuck_call

__asm
{
popfd
}

普及一下基本知...[/QUOTE]
判断dr6硬断原因了~~
2014-10-31 15:41
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
21
只是思路,不专针文章中的POC
2014-10-31 16:05
0
雪    币: 218
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
那貌似就只能是这个方法,再加上Hook KiUserExceptionDispatcher改Context了
或者加个VEH?
2014-10-31 18:08
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
23
KiUserExceptionDispatcher如果poc也hook了呢?

POC里没有做CRC校对,主要是为了突出POC~
2014-10-31 20:52
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
接管调试流程,发现异常先检测是不是OD设置的断点,不是则还原DRX,当然之前得为每个线程维护一个DRX清单
2014-10-31 21:12
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
25
那么问题就来了,硬断被占坑之后,你无法使用硬断了~
2014-10-31 21:25
0
游客
登录 | 注册 方可回帖
返回
//