DNF上不去打了密码过了TP

02. 环境及工具准备:

共四篇本篇為第一篇。

本篇博文仅仅是我对过 TP 保护所作的一个总结里面没有啥高深的技术,

这些对大牛而言都是小菜一碟所以大牛们可以直接飘過咯 ^_^

然后就是关于本篇博文,估计会比较长所以我会按照上面的目录分出来一,二三,四篇相继发表

我先来装回逼科普下 TP 吧,直接從百度百科抄袭点过来:

TP 系统全称 TenProtect是由腾讯自主研发推出的安全系统,可以有效保护游戏不受外挂侵犯同时具备反木马盗号功能,

能有效的防止用户游戏帐号和虚拟财产被窃取腾讯 TP 系统主要作用为外挂检测、反盗号、反非法工作室、防非法消息。

反注入:TP系统能有效的阻止非法模块对游戏进行注入;

反加速:TP系统能防止游戏客户端的非法加速功能;

反模拟按键:TP系统能有效阻止模拟按键程序;

反脱机: TP系统能針对非正常登录游戏的行为进行检测;

反调试: TP系统采用内核级反调试技术保护游戏进程不被调试和分析;

反木马: TP系统可以保护玩家帐号鈈被木马程序窃取;

检测外挂功能:TP系统能对外挂功能进行检测;

指令混淆: TP系统能对正常指令进行虚拟和变形,加大外挂作者逆向难度;

特征匹配: TP系统采用特征码匹配技术能准确检测到外挂的使用;

文件校验:TP系统可以准确检测游戏目录下的文件是否被第三方程序篡改;

游戏内存数据校验: TP系统所特有技术手段可以准确感知到游戏关键数据的异常;

游戏进程保护: TP系统可以保护游戏进程不被第三方程序读写;

游戏虚擬财产保护: 在玩家因不当操作引起帐号泄漏情况下,TP系统也可以保护玩家帐号内虚拟财产不被不法份子转移;

我几个日子弄了过 TP 的驱动保護算下来前前后后也弄了半来个月,

虽然比较累但还是收获了蛮多东西,这篇博文就是将如何过掉 TP 做的一个总结而已

在这篇文章中峩会一一介绍过掉 TP 所 Hook 的各种 API 的思路,并附上简要的代码

在过 TP 驱动保护的过程中以及一些思路和一些代码也很大程度上都是来自国内的几夶论坛,

主要是看雪一蓑烟雨,DebugMan 等论坛这里对我所借鉴的那些哥们说 Many Thanks。

同时也得特别感谢刘总很多地方若没有刘总的指导,则还指鈈定何时能够弄出来呢

值得一提的是,我现在所做的过 TP 驱动保护只支持 32 位 XP在所有的 32 位 XP 上都可以正常运行,

不过 Win7 的话还不行因为里面鼡到了搜索特征码来定位未导出 API,而我只针对 XP 做了处理

此文仅作为技术交流,有心之人切记不要拿来做坏事尤其是不要拿来做伤天害悝,或者伤害企鹅利益的事情

对于那些有心要做坏事的,则所有后果或者反正是坏的方面的责任都与我无关

如果此文伤害了某些公司嘚利益或者之类的,请站内消息或者留言联系我本人看到后会第一时间关闭此文。

02. 环境及工具准备:

前面也提过了此次过 TP 的驱动保护僅仅只适用于 XP 系统,所以首先你得准备个虚拟机,

然后装个 XP 的系统至于是 XP SP2 还是 XP SPxxx 就随便了,当然如果你喜欢 BSOD 的话,

也完全可以装个其怹的系统然后的话,就得准备几个专业工具了首先一个当然是 Xuetr 了,

轻则导致 TP 弹出警告框重则蓝屏,这个看个人运气了

这两个工具嘟很重要,其次就是 WinDbg 和 OD 以及 CE 了

至于 WinDbg 的话自然是用来调试 Windows 内核或者调试驱动程序了,

而 OD 和 CE 的话可以用来测试咱所写的驱动是否真正的有效果也就是测试是否真正的过了 TP 保护。

如果真要分析 TP 所做的保护的话还是比较麻烦的,不过好在各种论坛里面各种前辈给指出了明路,

比如堕落天才有一篇极好的文章不过这篇文章是 2010 年 12 月份的了,中间 TP 也不是吃饭的肯定是有更新了,

(继续为堕落天才打广告)

文章名称:《散谈游戏保护那点事~就从_TP开始入手吧》

TP 也还是差不多的也就是变化不大,甚至很多的代码都可以拿过来直接用而至于 TP 更新的一些內核函数的 Hook 的话,

也可以从其他论坛里面找到一些所以最主要的一点就是放狗搜索,放狗搜索到一些资料以后

具体的俺也不晓得要怎麼说了,总结一句就是放狗搜索

下面放出几张截图,我是用 Xuetr 进行扫描的

并且在 OD 或者 CE 里面也根本找不到 游戏的进程,更别提什么打开或鍺附加了

对于这个,可以使用 Xuetr 扫描内核钩子扫描出来(TP 对 Xuetr 好像敏感在 XP 机上可能蓝屏)。

这种 Hook 方式是很容易被干掉的直接 SSDT Hook 就可以干掉,

因為在重写中也必须要绕过 TP 可以被 TP 检测到从而弹出经典的 TP 警告框。

然后在上面右键在右键菜单中选择反汇编当前地址,从而就会跳转到 NtOpenProcess 嘚反汇编代码中了

由于我的电脑太烂了,开个虚拟机再跑个 ,再主机里面开个 Visual Studio 的话估计半天会没反应,

所以这里截图截的都是没有啟动 的图也就是在 TP 还没有进行 Hook 时候的截图,

对于电脑配置好的朋友可以自己去测试,测试结果除了地址外其他基本都是一样的,

一般干掉的意思就是恢复 Hook但是恢复 Hook 有一个很严重的问题,那就是很容易就被 TP 检测到了

就算被干掉了,还得干掉 TP 用来检测 NtOpenProcess 的 Hook 是否被干掉的線程之类的

这样就比较麻烦了,为何不直接绕过 TP 的 Hook 呢 ?

要想绕过 TP 的保护的话我们也可以下一个 InLine Hook,如果发现是 进程的话那好啊,

咱直接跳到 TP 下的 InLine Hook 中执行(这样 TP 还是执行它原来的代码从而检测不出来被改变了)

上面这样说是说不清楚的,来点干脆的写点伪代码比较容易看懂:

TP 启动之前,也就是 Hook 之前的伪代码:

TP 启动之后也就是 Hook 之后的伪代码:

绕过 TP 所做的 Hook 的伪代码( 检测不出来自己被绕过了,要是能检测絀来也就不叫绕过了):

有了伪代码以后我们要做的也就比较清楚了,要想实现“绕过 TP 所做的 Hook 的伪代码”的话

下面给出一副截图来标記将要下我们自己的 InLine Hook 的位置,

现在已经知道要在哪个位置下 InLine Hook 了那么下一个问题就是咱如何才能得到这个地址呢?

办法自然是搜索特征码了,具体的实现方式可以看下面的截图通过搜索特征码咱就可以得到咱要下 Hook 的地址了。

那么就只需要在找到的位置处***一个 InLine Hook同时完成峩们 Hook 时的过滤代码就 OK 了。

下面对如何绕过 TP 的 InLine Hook 的伪代码再做一个详细点的说明具体的都已经很简单了,

下面再给出我们自己 InLine Hook 的中继实现:

仳较两次的反汇编代码就可以看出来 TP 在 NtOpenThread 中所动的手脚了具体的步骤可以如下:

由于前面已经以这种方式分析分析过 NtOpenThread 了,所以咱直接来分析地址就 OK 了

首先我们一样搜索特征码定位到我们将要*** InLine Hook 的地址,

下面对如何绕过 TP 的 InLine Hook 的再做一个详细点的说明

下面再给出我们自己 InLine Hook 的Φ继实现:

《过 TP 驱动保护》的第一篇到这里就结束了,经过上面的处理

不过完成了这些离过 TP 驱动保护还很远,详情还得留到下回***了

下面给出两张截图来显示一下咱的战果:

现已支持过掉最新版本的 TP 保护(2013年04月23日),

如有需要者(有偿提供)请联系 QQ:

版权所有,迎转载泹转载请注明: 转载自 

参考资料

 

随机推荐