吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25320|回复: 25
收起左侧

[原创] 【CSGO】AliveNK外挂分析

  [复制链接]
Gslab 发表于 2017-9-6 10:18
本帖最后由 Gslab 于 2017-9-6 10:23 编辑

背景:        
《反恐精英:全球攻势》(简称:CS:GO)作为《反恐精英》系列游戏的第四款作品,在FPS游戏玩家中一直有着比较高的知名度,目前是世界上玩家数最多的FPS游戏之一,2017年4月18日《CS:GO》国服开启先锋首测,尽管此次CS:GO国服进入三套安全方案,但仍然在首测2周内便出现了功能完善的外挂,其中Alive NK外挂功能更是全面。此次主要Alive NKCS:GO外挂进行分析。



外挂静态分析:

目录特征:
外挂的目录结构很简单,只有一个执行文件Alive NK V617[可选版].exe。外挂功能启动,还会注入到游戏内的result.dll,c盘根目录下会生成配置信息,同时游戏目录下生成对应配置文件具体如下:

名称
作用
所在路径
Alive NK V617[可选版].exe
外挂登录界面
存放目录
result.dll
外挂注入、逻辑实现模块
%temp%,注入后会被删掉
kss.ini
外挂连接情况,日志
c:\\
test.txt
外挂帐号
c:\\
test1.txt
外挂剩余时间
c:\\
config.xml
外挂配置文件
..\\CSGO\steamapps\common\Counter-Strike Global Offensive\

文件特征外挂主界面Alive NKVMP加壳IDA拖入代码阅读性差




界面未对调试检测和对抗,调试器可正常附加进行分析外挂注入模块result.dll/TemporaryFile)注入后被删除




通过对CreateFile和WriteFile hook拦截,获取完整dll,同样外挂模块VMPIDA可读性很差





外挂配置文件config.xml未做加密,里面包含着外挂功能配置选项




外挂动态分析行为分析


外挂有两种方式注入,分析第一种注入,直接hook进程遍历和常见的注入api,记录如下:




同时外挂在遍历目标进程的同时,在%temp%目录下释放自身将要注入的dl’


l

最终外挂通过创建远程线程,将result.dll注入到目标进程中




选取另外一种方式注入,发现获得了同样的api调用序列,同时监控到无消息钩子创建,无dll劫持,无LSP和注册表的相关修改,外挂的第二种注入方式本质上仍然是远程线程注入,与第一种并没有什么不同外挂注入游戏后,调试器附加,无法找到外挂模块,结合pchunter模块加载的地址,可以找到外挂的内存分布暴力搜索内存中的相关字符串,可以获得相关字符串信息,字符串显示UI使用,分别对应外挂的中文版和英文版




同时发现,模块加载后,会先跨模块调用游戏内各个模块的导出函数CreateInterface获取各个游戏模块内的接口




外挂通过获取到的接口,进一步计算得出其他函数地址(下图为外挂获取的游戏内UI显示的部分接口





执行时机:


外挂注入后会在游戏的右上角绘制自己的窗口,猜测外挂调用dx/gui相关绘制函数,对常见api下断点进行回溯后,并发现相关外挂调用信息分析过程中注意到当外挂保存配置向游戏界面上写入保存配置成功,结合对应明文字符,定位相关逻辑:


进一步跟进,外挂修改了虚表[[[vguimatsurface.55BEF580]]+0xA4],替换自己的外挂模块地址获得执行实际




虚表原本指向vgui2.dll+0x180A0,调用来自client.dll. engine.dllvguimatsurface.dll多处,负责游戏UI相关功能外挂修改虚表指向自己模块,用来获取自己的执行时机
外挂功能分析透视外挂给出透视的选项-ESP功能,结合激活开关,通过CE搜索开关标志位,再通过对标志位下访问断点,回溯后定位到ESP功能的入口函数




跟进分析,通过分析流程跳转,确定外挂temporaryfile.3061bb80透视相关的功能函数(仅修改跳转,透视方框消失,其他功能正常)




进一步分析temporaryfile.3061bb80实现逻辑,外挂在函数内engine.dll获得相关数据结构




解析数据结构获取坐标相关偏移最终将获取的坐标保存到自己的模块




最终调用engine-CEngineVGui::Paint进行绘制第三人称游戏外挂提供了第三人称视角,可以结合陀螺外挂使用,危害程度较大




通过开通和关闭第三人称,结合CE搜索关键标志位确定第三人称在游戏中的开关位置




外挂修改游戏内的第三人称的开关,打开了第三人称视角 陀螺仪CS:GO陀螺外挂影响较为恶劣,人物可以快速旋转抖动,外挂中的UI中给出了陀螺外挂偏移量数据,这个其实是人物朝向和开枪方向的偏移。结合CE搜索偏移量,定位到外挂模块存取偏移量的内存地址




地址下访问断点,结合陀螺仪的开启时机,最终确定result.dll+0x5D1D为关键地址




分析上述访问偏移量的地址全部存在于外挂模块,跟进分析其他几个地址,未发现游戏直接或者间接访问这个偏移量,所以,外挂很可能将偏移量进行了计算转换结合result.dll+5D1D回溯分析,最终确定偏移量的计算逻辑:




游戏中很有可能使用的是计算后的这个偏移量,结合CE对偏转后的浮点数进行搜索最终确定关键地址




此时开启陀螺仪的抖动功能,发现视角及计算后的方向不停的被修改猜测游戏外挂很可能的在不的改写数据




外挂中的计算后的浮点数据下写入断点,用来获得外挂在修改后的执行逻辑




堆栈回溯分析,最终确定陀螺主要实现逻辑外挂首先调用eingine中函数判断游戏当前状态,如果在大厅则对应陀螺功能也不开启




最后,外挂会获得当前的陀螺仪开启的方式和设置的设置偏移量,最终将计算好的偏移量,写入内存




感知时机上,外挂不再通过vguimatsurface.dll,将之前分析透视相关的虚表恢复,也不会影响到陀螺的功能,通过分析获得,陀螺hookengine负责帧绘制相关虚表,获得更改人物状态的执行时机(原虚表指向client+0x22C340)




然后更改了hook了获取人物视角的虚表client.dll+0x2BA636处(原本应该call client+0x23c4a0),进行对当前视角进行修改




1. CS:GO游戏通用安全保护强度不高,游戏分析门槛较低,导致了外挂制作成本较低
2. CS:GO-VAC检测强度不高,导致了外挂存活周期长。
3. CS:GO前端实时对抗方案,处罚作弊具有延后性。
4. CS:GO人物坐标全局下发,导致游戏会长久存在FPS通用透视自瞄外挂风险



*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

免费评分

参与人数 12吾爱币 +13 热心值 +12 收起 理由
smile1110 + 3 + 1 我很赞同!
whdfog + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ammo + 1 + 1 谢谢@Thanks!
天游客 + 1 + 1 热心回复!
forest666 + 1 + 1 已答复!
reddevil007 + 1 + 1 我很赞同!
在那悠远的穹 + 1 + 1 我很赞同!
du8912121 + 1 + 1 用心讨论,共获提升!
废宅小五 + 1 谢谢@Thanks!
www.52pojie.cn + 2 + 1 谢谢@Thanks!
Aperodry + 1 + 1 热心回复!
Daxx88 + 1 原来是转载

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

XLeeC 发表于 2017-9-7 19:47
这是国外的免费开源外挂《AYYWare》原本是为了供学习使用的,被国内的“外挂制作者”下载后汉化公然出售
另外绘制等使用的是游戏内的函数,陀螺只是对UserCMD进行修改(高级陀螺会根据bSendPacket来构造真假头)

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
smile1110 + 2 + 1 谢谢@Thanks!
Bigfengfeng + 1 + 1 现在很多国内的外挂都是搬国外的源码再汉化一下

查看全部评分

vbhvhgh 发表于 2017-9-6 10:23
lnby334 发表于 2017-9-6 10:23
LeoSky 发表于 2017-9-6 10:42
技术贴必须要顶
honghuli77520 发表于 2017-9-6 10:53
厉害了。这种外挂是用什么语言编写的?
loonglee 发表于 2017-9-6 11:24
        谢谢@Thanks!
shhh520 发表于 2017-9-6 11:44
不管多么完美的游戏总有些作弊工具产生,真的是防不胜防呀。CS-GO这么专业的游戏希望国服加强外挂检测,别像1.5和1.6那样,一个快绝版了,一个还在娱乐着。
你都如何回忆我 发表于 2017-9-6 12:01
FPS游戏 外挂屡禁不止  这个真的是没办法。。。绝地也是这样 挂也开始多起来了
a191127460 发表于 2017-9-6 13:13
CSGO这么好的游戏 最好就不要用外挂吧 影响游戏体验
juecky 发表于 2017-9-6 14:02
很不错,不知道是否支持cs1.6
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 22:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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