12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
三国霸业 战车-珍宝-觉醒-攻城掠地SF-全新玩法 免费玩新区 攻城掠地私服 进入游戏
手游私服盒子 各类免费游戏 0.1折送海量资源 各类手游私服 进入游戏
皇家MU2 《奇迹 2:传奇》韩国网禅公司《奇迹》正统续作。 3D锁视角Mmrpg 暗黑3+传奇+流放之路+奇迹 进入游戏
查看: 313|回复: 0

【原创】TP驱动保护分析系列一 定位TenProtect保护

[复制链接]

312

主题

312

帖子

634

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
634
发表于 2021-7-18 18:16:21 | 显示全部楼层 |阅读模式
系列索引

【原创】TP驱动掩护分析系列一 定位TenProtect掩护
【原创】TP驱动掩护分析系列二 代码定位内核函数
【原创】TP驱动掩护分析系列三 SSDT定位内核函数
媒介

很早之前就计划出一个TenProtect掩护分析系列,一直鸽到现在
关于TenProtect研究过游戏安全的朋友们肯定不陌生,可谓是业界标杆
但再强大的掩护也肯定有破绽,本着学习研究的目的,写下本身与TenProtect斗智斗勇的记录,也盼望TenProtect能够更进一步
TenProtect掩护分析

TenProtect简介


TenProtect,是由腾讯自主研发推出的安全体系,可以有效掩护游戏不受外挂侵犯,同时具备反木马盗号功能,能有效的防止用户游戏帐号和假造财产被窃取
腾讯 TenProtect 体系重要作用为:外挂检测、反盗号、反非法工作室、防非法消息
该系列不提供任何成品,伸手党可以退出了,仅供学习交流研究严禁用于任何非法途径
分析的情况

本人采用的分析情况为XP 32位,使用的为论坛的假造机镜像
首先32位驱动和64位驱动照旧有不少差异的
WIN64引入了两个内核掩护机制,KPP和DSE

  • KPP:循环查抄几个重要驱动数据段和代码段是否被修改,如果被修改,则触发0x109蓝屏;防止内核修改
  • DSE:驱动署名逼迫,克制加载不精确署名的驱动;署名验证
在WIN64上限于上面两个掩护机制使得驱动掩护相比XP情况下变得薄弱
本着学习和研究的目的,选择XP体系作为范例
研究结果图

研究结果放的是之前的截图,时间是:2021/2/25(懒得再搞一遍了)
可以看到OD可以正常地附加游戏(仅研究游戏的掩护机制,本人没有参与过也不计划参与任何网游的外挂开发销售,勿扰!!!

TenProctect的掩护

分析掩护之前,首先要明确TenProtect提供了哪些掩护
下面给出TenProtect的掩护:

  • 针对Windbg的双机调试的掩护
  • 针对打开进程的NtOpenProcess的掩护
  • 针对读内存的NtReadVirtualMemory的掩护
  • 针对写内存的NtWriteVirtualMemory的掩护
  • 针对打开线程的NtOpenThread的掩护
  • 针对附加进程的KeAttchProcess的掩护
  • 针对附加进程的KeStackAttachProcess的掩护
  • 针对附加进程的KeForceAttachProcess的掩护
  • 针对恢复进程的NtResumeProcess的掩护
  • 针对恢复线程的NtResumeThread的掩护
  • 针对调试信息转达相关的DbgkpPostFakeThreadMessages的掩护
  • 针对唤醒调试目标的DbgkpWakeTarget的掩护
  • 针对调试权限标志的ValidAccessMask清零的掩护
  • 针对调试对象的DebugPort清零的掩护
上述的掩护中,比较贫苦的为针对Windbg的双机调试的掩护和针对调试对象的DebugPort清零的掩护
前者需要相识双机调试的通信原理,后者需要相识DebugPort的作用并自建调试体系(干掉检测线程自然也行)
除开上述的掩护,TenProtect还会对硬件断点进行检测,通过获取DR寄存器的信息来进行判定
可以通过Hook NtSetContextThread和NtGetContextThread 这两个和线程上下文相关的函数来实现绕过检测
如何获知TenProtect的掩护

上面提到了如此多的掩护,现在来说说如何知道TenProtect所作的掩护
ARK

这里需要用到ARK(AntiRootkit),所谓的ARK就是反内核工具,ARK这种工具可以让我们得到体系内核的相关信息
常见的ARK工具有:
XueTr、IceSword、Wsyscheck 、Snipesword等
使用ARK分析掩护

这里使用的ARK为XueTr
此次分析的游戏为QQ堂,算是个比较古老的小型游戏,但麻雀虽小五脏俱全,其TenProtect照旧很强力的
打开游戏,等TenProtect加载完毕后再打开ARK:XueTr
SSDT HOOK

点击 内核钩子→SSDT

可以看到SSDT被挂了两个钩子:NtReadVirtualMemory和NtWriteVirtualMemory
这里便是所谓的SSDT HOOK,关于SSDT HOOK 会单独开章节阐明,这里不继续深入
Kernel Inline HOOK

点击 内核钩子→内核钩子

可以看到有不少内容,前面几个Hook是假造机自带的,无须关注;只需关注底下的几个Hook
这里以最后一个Hook为例,即0x805D5832,使用Windbg检察其地址对应的函数
输入指令:
u 0x805D5832u指令为检察指定地址的汇编指令,得到:

可以看到该地址对应的函数为PsResumeThread,也就是说TenProtect在PsResumeThread的头部做了HOOK
这个时候会发现PsResumeThread貌似并不在前面给出的掩护中,暂且不急,看看PsResumeThread和前面函数的关联
通过前面的XueTr可以得到,被Hook的文件为ntkrnlpa.exe,使用IDA打开ntkrnlpa.exe
然后通过ALT+T 搜索PsResumeThread

得到:

选中PsResumeThread函数后按快捷键Ctrl + X 检察交织引用

可以看到前面提到的掩护:NtResumeThread、DbgkpPostFakeThreadMessages、DbgkpWakeTarget均调用了被HOOK的PsResumeThread
于是如果想要绕过掩护则需要替换PsResumeThread函数,将其变成我们本身写的函数MyPsResumeThread
以此要Hook的函数为NtResumeThread、DbgkpPostFakeThreadMessages、DbgkpWakeTarget,而非PsResumeThread
其它内核钩子分析方法同上,这里不再赘述,这里只是简单地阐明一下如何定位TenProtect所做的掩护
其它掩护

上面只分析了SSDT HOOK和Kernel Inline HOOK,肯定有人会想问ShadowSSDT和其它钩子呢
关于ShadowSSDT在以后的篇章也会详细阐明,但该游戏并没有针对ShadowSSDT的掩护,于是无须分析
除此之外,还有Windbg双机调试的掩护、ValidAccessMask清零的掩护和DebugPort清零的掩护没有提及
由于这三个掩护相对复杂一些,需要对调试体系有肯定的相识才行,之后也会单独开篇章分析
总结

分析流程


  • ARK工具扫描被改动的函数
  • 确定被改动函数的交织引用
  • 确定需要绕过的函数
  • 绕过函数
增补阐明

此篇笔记重要阐明了如何定位TenProtect的SSDT HOOKKernel Inline HOOK
关于相对比较复杂的Windbg双机调试的掩护、ValidAccessMask清零的掩护和DebugPort清零的掩护 留作之后
定位之后才气有针对性地绕过,但这里的定位只是借助了ARK和Windbg两个工具定位的,真正想要写代码定位留作之后再作增补
这里先预告一下 通过代码定位内核函数的五种方法

  • 特征码定位法,通过特征码定位到内核函数附近,然后加上偏移即得到内核函数地址
  • 通过MmGetSystemRoutineAddress函数定位,该方法定位的函数有限制
  • SSDT定位法,通过SSDT表的地址加上SSDT函数的偏移计算得到对应的函数地址,该方法仅可定位SSDT函数
  • PE文件导出表扫描法,通过解析PE文件的导出表得到函数的地址,有关这一块可回顾PE文件笔记十四 导出表,该方法仅可定位导出的函数
  • 符号表PDB解析法,通过解析PDB文件得到函数的地址
该系列的门槛可能较高,需要在对操作体系和调试机制有肯定的相识的情况下学习
该篇的内容不算多,算是简单先容了有关TenProtect掩护的定位,后续会不停增补更新,有不足之处盼望大家能指出

来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-11-24 15:54 , Processed in 0.062500 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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