gh99 发表于 2011-8-7 10:08:11

HackShield 保护研究

这是第一次研究HackShield,根据前辈的回忆录。HackShield乃安博士旗下的产品,HackShield有普通版和Pro专业版,至于两者确切的区分,目前暂不清楚。


天成游戏公司代理韩国跑跑卡丁车已经有几年时光了,游戏保护从最初的GameGard 就是穷凶极恶的NP,到后来使用HackShield,这类保护都来源于棒子的思路,把战斗地点从Ring3直接拖到了Ring0。

Hook API已经是老得不知道掉了几层牙的东西了,但是作为菜鸟,不懂的就是新的,我们也仍然抱着学习新东西的那种新鲜,前去学习,下面是一些学习心得。


HackShield非常烦,尤其是Anti-WinDbg方面,蓝屏的Dump无法分析,不知道是Windbg配置问题还是HS故意破坏PE头。


对Hook的扫描采用大概如下方法,用能用的ARK工具,如果都不能用,那自己打造吧。

扫描后的结果如下,在本机上。

804f9a12

8057a270

80581822

805b5292

805b539c

805bd505

805cc407

805d578a

总共八处Hook 重启Target,用WinDbg逐个分析之,结论大概如下。。。HS在运行的时候会监视KdDebuggerEnabled 这个值,如果为真则直接重启。WRK中该函数直接访问的是一个远程指针,该指针最终记录的是一个Bool变量,标志操作系统是否被内核调试器调试。


1.804f9a12   对这个地址附近的代码进行反汇编,得到如下结论。。。

nt!KiAttachProcess+0x19:
804f9a11 e85afbffff      call    nt!KiMoveApcState (804f9570)
//这是原版的OS代码,HackShield hook后变为 call Filter。。。

KiAttachProcess是一个非常底层的函数,很多地方都要频繁的调用他,这个函数的功能就是把当前进程上下文切换到目标进程。比如某驱动要读写另外一个进程的Ring3代码,这时候附加也就应运而生。又比如Read/Write其他进程内存的时候,也需要OS将当前进程切换到目标进程。 该函数的详细实现,请参考WRK。

记得某保护是在入口处做一个代理。关于此函数的定位,很多人已经讨论过了,通过搜索KeAttachProcess。 这里再来点废话,KiAttachProcess,最终被调用总共有4处,依次为:

KeAttachPrcoess 2处

KeStackAttachProcess

KeForceAttachProcess , 如果想更邪恶点,不解释。


2.   
8057a270

nt!NtDeviceIoControlFile+0x25:
8057a26f e8be6f0000      call    nt!IopXxxControlFile (80581232)
8057a274 5d            pop   ebp
8057a275 c22800          ret   28h

这个API名称真有意思, opXxxControlFile,佩服m$的外星生物, 不用想又是干这样猥琐的勾当。


3. 80581822 暂时有问题,WinDbg告诉我这是opXxxControlFile的函数尾部。


4.805b5292

nt!NtReadVirtualMemory+0x7:
805b5291 e8ea78f8ff      call    nt!_SEH_prolog (8053cb80)

不解释不掩饰,防止内存读的,这个API,基本都能找到代码直接给残废了。

5.805b539c

0: kd> u 805b539b
nt!NtWriteVirtualMemory+0x7:
805b539b e8e077f8ff      call    nt!_SEH_prolog (8053cb80)

同4一个道理,不解释。
**** Hidden Message *****

紫色水精灵 发表于 2011-8-7 11:22:26

学习了,谢谢

zhdmzjy 发表于 2011-11-20 17:43:44

有道理,我急需要11

msn882 发表于 2011-12-3 17:15:00

谢谢分享谢谢分享

woyaozhuxe 发表于 2011-12-14 12:40:45

我是来学习的 谢谢楼主

kfc123 发表于 2011-12-15 20:43:36

什么都要回复

18555587 发表于 2012-1-15 01:58:40

回复浏览一下

wu0you 发表于 2012-1-23 20:25:50

顶了 谢谢楼主共享

kfc123 发表于 2012-1-25 21:02:17

毫无用处,都是过时的东西,过不了新版的

jtt_520530 发表于 2012-2-28 22:03:45

参考学习下,我顶!
页: [1] 2 3
查看完整版本: HackShield 保护研究