随笔 - 1, 文章 - 3, 评论 - 1, 引用 - 0
数据加载中……

(转wanleidawa )搞定QQ游戏系列(寻仙,DNF等等)驱动保护TesSafe.sys

1.用RKU看一下SSDT和SSDTShadow,发现SSDT并没有被HOOK,SSDTShadow HOOK了5个调用:
NtUserBuildHwndList
NtUserFindWindowEx
NtUserGetDC
NtUserGetDCEx
NtUserGetForegroundWindow

想也不用想,肯定是为了防止其他软件找到他的窗口。
解决方法:在TesSafe加载前先加载自己的驱动,备份这5个调用的地址,等TesSafe加载后直接还原即可,或者直接用RKU还原,TesSafe并没有在这里加效验,所以比较容易。

2.既然SSDT没有没HOOK,那么肯定有inline hook,用windbg看一下,发现被inline hook的调用有如下几个:
NtReadVirtualMemory 
NtWriteVirtualMemory
NtOpenProcess + 0x2xx Call ObOpenObjectByPointer处
NtOpenThread  + 0x1xx Call ObOpenObjectByPointer处
KiAttachProcess

解决方法:
(1).
NtReadVirtualMemory
NtWriteVirtualMemory
这2个比较好解决,自己写2个调用,实现这2个调用的头10个字节,然后再跳转到这2个调用头10个字节后面的地址,再到SSDT表里把这2个调用地址改成我们自己的即可。

(2).
NtOpenProcess + 0x2xx
NtOpenThread  + 0x1xx
在TesSafe加载前,先保存ObOpenObjectByPointer的地址(或者用MmGetSystemRoutineAddress获取),然后我们自己写一段代码,实现Call ObOpenObjectByPointer头N个字节(随便自己)以及Call ObOpenObjectByPointer,然后再jmp到Call ObOpenObjectByPointer后面的代码地址,如:
push eax
push dword ptr [ebp-38h]
push dword ptr [ebp-24h]
Call ObOpenObjectByPointer
jmp xxx
然后在Call ObOpenObjectByPointer前面N个字节处jmp到我们自制的代码,这样的话就算TesSafe把Call ObOpenObjectByPointer改成Call到自己的函数,对我们也没有作用了。
注意:直接还原代码的话,势必会蓝屏。因为TesSafe对这个地址有代码效验

(3).
KiAttachProcess
由于这个调用并没有被导出,在SSDT表中也没有他的地址。所以我们首先要获取他的地址
虽然它没有被导出,但是调用它的另外一个调用KeAttachProcess却是被导出了的,我们可以先用MmGetSystemRoutineAddress获取KeAttachProcess的地址,再通过KeAttachProcess + 0x41的Call KiAttachProcess来取得KiAttachProcess的地址,然后直接还原它的代码即可(TesSafe并没有对这里进行代码效验)。

至此,TesSafe的所有HOOK都已恢复完毕,这时用OD附加游戏,发现OD会突然停止。
其实,上面那些HOOK大部分人都已经搞定,关键就是这最后一步,OD停止的原因是他收不到调试消息了,因为TesSafe有一个线程不停的向PEPROCESS->DebugPort 写入NULL(0)。
DebugPort其实就是Debug_Object的指针。

UnHook的方法多种多样,稍微灵活变通下就能想出很多方法。
程序我就不传了,我相信这些分析比传一个程序有用的多

NP和HS也都大同小异,自己写系统调用,一样过他
以后我会介绍如果绕过NP,以及HS的保护

posted on 2009-01-03 22:27 开花的树 阅读(681) 评论(1)  编辑 收藏 引用 所属分类: asm

评论

# WTY  回复  更多评论   

Thanks again gouzhuang. Will try what you said and if I get some advances in my hacks I'll give you my sources here.

I've an Sveon VGSPM3000, but in fact is the same system Realtek venus with mipsel arch. Trying to add some basic features to it but I needed the IR one :)
2010-07-08 15:25 | cosplay
只有注册用户登录后才能发表评论。