12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 312|回复: 0

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

[复制链接]

60

主题

60

帖子

130

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
130
发表于 2021-5-8 00:09:04 | 显示全部楼层 |阅读模式
前言

很早之前就筹划出一个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-4-29 05:45 , Processed in 0.156250 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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