首页
社区
课程
招聘
[原创]丢一套Bin源码,过HP,稍微改改还可以过PP和TP
发表于: 2013-8-14 14:47 43264

[原创]丢一套Bin源码,过HP,稍微改改还可以过PP和TP

2013-8-14 14:47
43264
首先,郑重感谢海风月影,cvcvxk,zhouws等前辈,也应看雪大侠们的开源精神
这些猥琐的xxoo使我能有很深刻的体会

这套工程是不久前完成的,主要就是自建调试机制
由于精力有限,在重载内核这方面没去做过多研究

下面来简单说说驱动保护的反调试,相信不少同学都知道调试端口,调试互斥体,调试标志...
对于DebugPort检测来说,一般的Pass手段,都是通过修改偏移,但这种方式也有很大的局限性
只要被保护程序调用一下系统调试异常的相关函数,就可以检测到,比如说PP保护...
再就是DbgkpProcessDebugPortMutex,为了让调试器跟系统能够同步,MS引入了调试互斥体这个东东
对于进程PEB->BeingDebugged,是让系统知道这个进程正在被调试,以此做为依据来执行某些操作,比如进程被调试器附加的时候,会调用int 3,很多保护在被附加的时候断不下来,这个东东也会作怪

既然驱动保护可以检测这些特征,那么知道了这些东东的用途,就完全能够自己去构造
编程的重点是面向对象,没错,但是在某些时候,编程的重点是面向自己的对象
天不给我路走,我自己找路走,地不让我路平,我自己去踏平

再来谈谈HP,这个保护系统可谓牛X,不得不佩服海风大侠,也让我死伤了不少脑细胞
SSDT和Inline以及object钩子就不说了,单单一个调试权限的问题,就让我捂了半天,怎么办?从最初的Hide调试对象类型,让HP找不到,到现在干脆自己造一个对象类型ObjectType覆盖过去,int 1和int 3也处理完毕
好了,准备收工,现在万事俱备只欠东风了,工程创建完成后,开启HP调试一试,果然不出乎我所料,太喜欢你了
软的终于搞定了,再来看看硬的,一个he send过去后,马不停蹄地进去捣乱,奇怪了,真的是神马,马不停蹄了
目测看来,应该是GetThreadContext和SetThreadContext这2个鬼,于是乎,开始捉鬼了
当满怀希望再次刺探的时候,鬼又来了
看来鬼真的是太多了,好吧,再次打住...
继续捉了好一阵,终于,最后这个鬼真的是来无影去无踪,很擅长杀人于无形,虽然是硬碰硬,但它也会四两拨千斤,真的是太狠了 让你根本硬不起来
原来它是利用了调试寄存器的特性,而且DPC还会主动触发硬件断点异常来通信,所以恢复IDT表就重启或BSOD
又继续研究了一阵子找到对策,再次来到老地方亮剑,这次总算硬起来了,终于可以软硬通吃,太爽了,爱死你了

最后申明,这套工程的用途和一切后果与本人无关,在xp上面跑,通过符号文件来获取内核函数地址,系统版本不一样,对应的符号文件也不一样,需要自己放进去,界面就2个按钮,是用Delphi写的,把数据通过文件映射传给驱动,一个OD插件来欺骗PEB->BeingDebugged,可以让OD在附加进程的时候能够断下来,驱动里面通过对象隐藏了OD,并自创了2个对象类型,断链表,Hide窗口,抹除句柄啥的,你们都懂的,另外,能Pass内核钩子的同学自己改一下,也可以调试PP和TP...蓝屏自己看着办吧

最后的最后,求收留,求救助,求交流,QQ:14946052,本人三无,无房子无车子无女子,纯属无产阶级

附上工程

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 5
支持
分享
最新回复 (85)
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
2
占个沙发,学习下。
2013-8-14 15:02
0
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
3
这个月很精彩~
2013-8-14 15:09
0
雪    币: 3110
活跃值: (1254)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
看样子花了不少通宵,我和我的小伙伴们都惊呆了。。

竟然有鸣谢:)
2013-8-14 15:14
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
支不支持WIN7哇~~~
2013-8-14 15:18
0
雪    币: 342
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
都在搞游戏,游戏真是伤不起啊,顶你
2013-8-14 15:25
0
雪    币: 149
活跃值: (2618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我和我的小伙伴们都惊呆了。。
2013-8-14 15:25
0
雪    币: 43
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mark学习
2013-8-14 15:26
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我和我的小伙伴们都惊呆了。。

都把神器开源了
2013-8-14 15:29
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看到神器,我放弃了我的第三章。
2013-8-14 15:38
0
雪    币: 87
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不mark对不起各位神灵
2013-8-14 15:52
0
雪    币: 167
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
哇塞  大神们都放血了  喝血喝不完了
2013-8-14 15:58
0
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
13
大牛,我把你的插件放在OD 的插件目录,驱动也放进去了,但是打开OD读取不到插件,这是什么问题?我操作有问题哇 ?还有那个GUI,运行后就直接一闪而过。这是怎么回事?希望大牛解答下。
2013-8-14 16:04
0
雪    币: 83
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个月福利很多~~~
2013-8-14 16:04
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看看,学习下
2013-8-14 16:07
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
我突然觉得这几天加班的实习生是不是有一种激烈的痛苦感。
2013-8-14 16:08
0
雪    币: 149
活跃值: (2618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我和我的小伙伴们都惊呆了。。
2013-8-14 16:10
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我和我的小伙伴也都惊呆了。。。
2013-8-14 16:13
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
绝对的好福利
2013-8-14 16:15
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
感谢开源
2013-8-14 16:47
0
雪    币: 286
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
xjj
21
说点技术外的话,,代码风格C,H混合开发。。。。看得真累~~

技术上有一点是存在小问题的,就是你处理IDT的方法,,这个选择子(selector)存在一个问题,就是
jmpOffset = (ULONG)JumpINT1 - INT1Address;
这句,,如果在你HOOK后,游戏的保护又修改了INT1Address,,那么你的代码BSOD的会疯。

也就是说,selector的做法,存在游戏先开,你的工具后开的问题。
2013-8-14 16:52
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
有一个线程在枚举模块,发现目标加载之后才去Patch IDT
不过通过添加GDT这种方式,确实是存在一个先后的问题
如果有不足,还求教育
2013-8-14 17:06
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
那我不是有负罪感了
2013-8-14 17:08
0
雪    币: 870
活跃值: (1033)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
大福利 收了
2013-8-14 19:42
0
雪    币: 10174
活跃值: (5052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢楼主的分享
2013-8-14 19:51
0
游客
登录 | 注册 方可回帖
返回
//