首页
社区
课程
招聘
[分享]用ObRegisterCallbacks实现进程防杀
发表于: 2012-9-12 15:52 42470

[分享]用ObRegisterCallbacks实现进程防杀

2012-9-12 15:52
42470
收藏
免费 0
支持
分享
最新回复 (69)
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
自己没试过就不要乱说吧,PG对动态的SSDT Table/GDT/IDT都有检查的
动态的,到了WIN8 X64上,object hook也有检查,改了之后过段时间就会BSOD,WIN7我记得object hook也会BSOD

到了WIN8上,你连 object type的support callbacks(可以制造更多的ob callbacks的一个技巧)都会被PG发现,从而BSOD
2012-9-15 13:09
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
你这方法改一下 WIN8 X64直接BSOD~
2012-9-15 13:12
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
28
你都Win8 x64了啊是正版么?话说国内还没看到正版的LIC啊~
其实直接VT后修改,随便效验内存,你效验的未必是你运行的。
MBR->VTEngine->MBR->MyPatchedOS的模型,无敌于世间万物的hook模型。
win7上对object hook无检测,win7 x64 开征途2 看那个object hook健在
win8 x64开征途2 object hook不在了~
2012-9-15 13:46
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
别VT了,看到WIN8 X64 PG里用的VT混淆代码我就吐了。
2012-9-15 14:38
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
30
你记得OBJECT HOOK在win7也会监测。。。那你把你win7的测试结果记得发出来看看?
试过再说吧

关于win8.。。。。我没测试过。。。所以不评论
2012-9-15 14:51
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
31
至于你说的。。。。改support call back这个被pg检查出来的。。这个完全一点不靠谱

我改完了马上注册。。。。注册完回调了马上还原。。。。你是哪只眼睛看到我改了的?

如果说我改完了,然后还原前就被pg看到了。。。。。那算我踩到狗屎了。。。。。不过不会每次都这样吧?这种几率可以当他不存在
2012-9-15 14:54
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
32
再者

动态填充,除非每次填的都是同样的内容,否则。。。。你凭什么检查

举例来说,PsProcess这个指针里面,存的是启动时申请的一块内存的首地址。。。。。这块内存里填的是OBJECT_TYPE

你如何可以保证每次申请的这块内存的地址都是一样的?既然不能保证(即使有办法实现,但是我想MS不会这么狗血,太蠢了),检查的依据在哪?因为我可以自己再申请一块内存,然后(*PsProcess)=MY_OBJECT_TYPE_PTR

你有检查的依据吗,这样。。。

我真怀疑你是不是真的自己实际试验过。。。最好截图出来
2012-9-15 15:01
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
33
这个。你之所以会蓝屏

多半是LDR_DATA_ENTYRY的定义出问题了,人家MS没说这个结构体一定不会变

这个SECTION都是根据用户自己的PE文件的内容填充的,pg做检查的话,依据何在?
2012-9-15 15:08
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
自己看过再说吧,想得太天真了,support callback是必须一直改了你的注册才能生效的。
2012-9-15 15:51
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
我回的是cvcvxk的帖子,说的是改support callbacks,小伙子别毛糙,仔细看完贴再回。
2012-9-15 15:52
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
你自己试试就知道了, sandboxie X64用的就是改object type,win8上就会BSOD
2012-9-15 15:53
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
37
sandboxie x64是个小众软件,请以 征途2 做测试~我怀疑这sandboxie x64没检测具体的系统版本号(把所有大于某个版本号都当作win7了,于是访问错误偏移直接bsod),征途2是因为没有支持win8的版本,手头的win8不是正式版,没有发现具体的检测.

Vt很简单,pg的代码没出现花...莫非你看的的pg是被某物感染后的...
2012-9-15 16:51
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
很明显不是错误的偏移,关于是不是检测了object type,关于WIN8 PG的混淆代码又多么可怕,你看了WIN8 PG的检测代码就知道了,别什么事都瞎猜。
2012-9-15 17:55
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
39
我windbg看过了

win8的object的结构体定义与win7已经不一样了

sanboxie应该还是用的以前的定义。。。。。挂掉也在所难免
2012-9-15 22:12
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
40
呵呵

准确说不是windbg看的。。。。话说某款工具软件用来生成系统结构体还真是方便啊。。。。
2012-9-15 22:13
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
41
是偏移错误,征途2在win8 x64下,openprocess依然打不开进程!!!!!
PG的代码再牛B,也没有vmp那么纠结吧...呵呵~
2012-9-16 02:25
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
唉,你和楼上那个都是一点都不知道自己去看看,就在这里胡扯的。
根本就不是什么偏移错误

打不开进程用标准的OB就可以,根本不用改object type

我还是帮你们查出来资料,你自己看吧:

Directly editing OBJECT_TYPE structures is unsupported.  This structure is an internal operating system construct that is subject to change and should not be directly accessed or modified by drivers.

修改后就触发bug check 0x109 CRITICAL_STRUCTURE_CORRUPTION

跟偏移错误一点关系都没有,自己调查清楚再回来发帖,别再浪费口舌了。
2012-9-16 10:44
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
另外,PG比VMP纠结多了,

逆向大神Alex Ionescu的原话:

“ I love the new #Windows 8 Patch Guard. Fixes so many of the obvious holes in downlevel, and the new hyper-inlined obfuscation makes me cry.”

自己去看看那些obfuscation 代码,再来说什么纠结不纠结,VT不VT吧,别光嘴上说。
2012-9-16 10:49
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
44
我还是喜欢那个qihoocom参与这种讨论,或许他现在在研究win9了?期待微软快出win10,什么内核数据结构、实现原理都大改一下,那样一切都安静了!
2012-9-16 18:53
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
45
然后我来总结下某人的观点以及最后我经过证实的结果:

1、win8里改driver的section使得没有数字签名的驱动可以注册ob回调,这个会被pg蓝屏------这个经过证实,子虚乌有,没这个问题
2、win8里改support那一个bit使得原本不支持ob回调的支持ob回调,会被pg蓝屏--------这个经过证实确实是这样
3、win7貌似也存在以上两个问题------这个经过证实,以上两个问题在win7之前的系统上都不存在
2012-9-16 20:37
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
第一个不是我说的,我压根就没说过你改driver section会蓝屏,我一直就只说了改object type的问题 ,前面cvcvxk误解了这点,我还专门解释了,仔细看前面的帖子。

support callbacks当然在win7不蓝屏了,要不SANDBOXIE就不会用了,这点我在前面也说过了,也就说你这些总结都是我前面已经说过的
2012-9-17 00:14
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
47
我也觉得ms没那么s13,既然都用上pg了,肯定修改重要的数据都会被检测的。
可能最开始的pg检测不够完善,导致改object type不会蓝屏。这只是我的猜测。
不管怎样,hook咱不用了,呵呵
2012-9-17 00:31
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
其实这点我前面引用的alex也说到了:“Fixes so many of the obvious holes in downlevel”

所以win8 pg还不少让人郁闷的地方,比如win32k.sys不能inline hook了,这个可完全没有标准接口可以,你做啥保护用一个模拟鼠标就关闭了。。
2012-9-17 00:34
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
49
微软再怎么改内核数据结构、实现原理,都没什么大不了的。
系统总的方向和架构是不会变的。

学习内核编程,很难变成码农的。
2012-9-17 00:39
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
50
kman还在啊,我擦,,,还不睡觉,?
难道也经常失眠?
2012-9-17 00:40
0
游客
登录 | 注册 方可回帖
返回
//