看流星社区

 找回密码
 注册账号
查看: 6812|回复: 23

HackShield 保护研究

[复制链接]

该用户从未签到

发表于 2011-8-7 10:08:11 | 显示全部楼层 |阅读模式
这是第一次研究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一个道理,不解释。
游客,如果您要查看本帖隐藏内容请回复

该用户从未签到

发表于 2011-8-7 11:22:26 | 显示全部楼层
学习了,谢谢

该用户从未签到

发表于 2011-11-20 17:43:44 | 显示全部楼层
有道理,我急需要11

该用户从未签到

发表于 2011-12-3 17:15:00 | 显示全部楼层
谢谢分享谢谢分享

该用户从未签到

发表于 2011-12-14 12:40:45 | 显示全部楼层
我是来学习的 谢谢楼主

该用户从未签到

发表于 2011-12-15 20:43:36 | 显示全部楼层
什么都要回复

该用户从未签到

发表于 2012-1-15 01:58:40 | 显示全部楼层
回复浏览一下

该用户从未签到

发表于 2012-1-23 20:25:50 | 显示全部楼层
顶了 谢谢楼主共享

该用户从未签到

发表于 2012-1-25 21:02:17 | 显示全部楼层
毫无用处,都是过时的东西,过不了新版的

该用户从未签到

发表于 2012-2-28 22:03:45 | 显示全部楼层
参考学习下,我顶!
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-27 03:58

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表