vgui2.dll
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
CS GO游戏AliveNK外挂分析 游戏安全实验室认证厂商2017-07-04共391001人围观 ,发现 10 个不明物体 系统安全
背景
《反恐精英:全球攻势》(简称:CS:GO)作为《反恐精英》系列游戏的第四款作品,在FPS游戏玩家中一直有着比较高的知名度,目前是世界上玩家数最多的FPS游戏之一,2017年4月18日《CS:GO》国服开启先锋首测,尽管此次CS:GO国服进入三套安全方案但仍然在首测2周内便出现了功能完善的外挂,其中Alive NK外挂功能更是全面。此次主要以Alive NK对CS:GO外挂进行分析。
CS GO界面.png
外挂静态分析
目录特征
外挂的目录结构很简单,只有一个执行文件“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 NK,VMP加壳,IDA拖入代码阅读性差
代码页.png
主界面未对调试做检测和对抗,调试器可正常附加进行分析
外挂注入模块result.dll(/TemporaryFile),注入后被 删除
代码执行页.png
通过对CreateFile和WriteFile hook拦截,获取完整dll, 同样外挂模块加VMP ,IDA可读性很差
代码页3.png代码页4.png
外挂配置文件config.xml,未做加密,里面包含着外挂功能配置选项
代码页5.png
外挂动态分析
行为分析
外挂有两种方式注入,分析第一种注入,直接hook进程遍历和常见的注入api, 记录如下:
第一种外挂注入.png
同时外挂在遍历目标进程的同时,在%temp%目录下释放自身将要注入的dll
释放dll.png
最终外挂通过创建远程线程,将result.dll注入到目标进程中
注入result.dll.png
选取另外一种方式注入,发现获得了同样的api调用序列,同时监控到无消息钩子创建,无dll劫持,无 LSP和注册表的相关修改,外挂的第二种注入方式本质上仍然是远程线程注入,与第一种并没有什么不同
外挂注入游戏后,调试器附加后,无法找到外挂模块,结合pchunter模块加载的地址,可以找到外挂的内存分布
暴力搜索内存中的相关字符串,可以获得相关字符串信息,字符串做显示UI使用,分别对应外挂的中文版和英文版
字符串信息.png
同时发现,模块加载后,会先跨模块调用游戏内各个模块的导出函数CreateInterface ,获取各个游戏模块内的接口
导出函数.png
外挂通过获取到的接口,进一步计算得出其他函数地址(下图为外挂获取的游戏内UI显示的部分接口)
游戏内UI显示的部分接口.png
执行时机:
外挂注入后会在游戏的右上角绘制自己的窗口,猜测外挂调用了dx/gui相关绘制函数,对常见api下断点进行回溯后,并未发现相关外挂调用信息。分析过程中注意到当外挂保存配置时会向游戏界面上写入保存配置成功,结合对应明文字符,定位到相关逻辑:
断点回溯.png
进一步跟进,外挂修改了虚表[[[vguimatsurface.55BEF580] ]+0xA4 ],替换成自己的外挂模块地址 , 获得执行时机
获得执行时机.png
虚表原本指向vgui2.dll+0x180A0,调用来自client.dll. engine.dll, vguimatsurface.dll等多处,负责游戏中 UI 相关功能,外挂修改虚表指向自己的模块,用来获取自己的执行时机。
外挂功能分析
透视
外挂给出了透视的选项 -ESP 功能,结合激活开关,通过CE搜索开关标志位,再通过对标志位下访问断点,回溯后定位到 ESP 功能的入口函数
定位入口函数.png
跟进分析,通过分析流程跳转,确定外挂temporaryfile.3061bb80 为透视相关的功能函数(仅修改跳转, 透视方框消失,其他功能正常)
透视方框消失前.png
透视方框消失后.png
进一步分析temporaryfile.3061bb80实现逻辑,外挂在函数内调用engine.dll 获得相关数据结构
相关数据结构.png
再解析数据结构获取坐标相关偏移,最终将获取的坐标保存到自己的模块
保存坐标到自己的模块.png
最终调用engine-CEngineVGui ::Paint进行绘制
第三人称
游戏外挂提供了第三人称视角,可以结合陀螺外挂使用,危害程度 较大
“第三人称”设置页面.png
通过开通和关闭第三人称,结合CE搜索关键标志位确定第三人称在游戏中的开关位置
定位“第三人称”设置开关.png
外挂修改了游戏内的第三人称的开关,打开了第三人称视角
陀螺仪
CS:GO陀螺外挂影响较为恶劣,人物可以快速旋转抖动,外挂中的UI中 给出了陀螺外挂的偏移量数据,这个其实是人物朝向和开枪方向的偏移。 结合CE搜索偏移量 ,定位到外挂模块存取偏移量的内存地址
定位到外挂模块存取偏移量的内存地址.png
对地址下访问断点,结合陀螺仪的开启时机,最终确定result.dll+0x5D1D为 关键地址
确认关键地址.png
分析上述访问偏移量的地址,全部存在于外挂模块,跟进分析其他几个地址, 并未发现游戏直接或者间接访问了这个 偏移量 ,所以,外挂很可能将偏移量进行了计算转换
结合result.dll+5D1D处回溯分析,最终确定偏移量的计算逻辑:
确定偏移量的计算逻辑.png
游戏中很有可能使用的是计算后的这个偏移量,结合CE对偏转后的浮点数进行 搜索 ,最终确定关键地址
确定关键地址.png
此时开启陀螺仪的抖动功能,发现视角及计算后的方向不停的被修改,猜测游戏外挂很可能的在不停的改写数据
外挂数据修改.png
对外挂中的计算后的浮点数据下写入断点,用来获得外挂在修改后的执行逻辑 :
获取外挂修改后的执行逻辑.png
堆栈回溯分析,最终确定陀螺的主要实现逻辑:
外挂首先会调用eingine中函数判断游戏当前状态,如果在大厅 ,则对应陀螺功能也不开启
堆栈回溯分析.png
最后,外挂会获得当前的陀螺仪开启的方式和设置的设置的偏移量,最终将计算好的偏移量, 写入到内存中
将偏移量写入内存.png
感知时机上,外挂不再通过vguimatsurface.dll,将之前分析透视相关的虚表恢复,也不会影响到陀螺的功能,通过分析获得,陀螺 hook 了 engine负责帧绘制相关虚表,获得更改人物状态的执行时机(原虚表指向client+0x22C340)
获得执行时机png
然后更改了hook了获取人物视角的虚表client.dll+0x2BA636处(原本应该call client+0x23c4a0),进行 对当前视角进行修改
修改当前视角.png
后记:
1. CS:GO游戏通用安全保护强度不高,游戏分析门槛较低, 导致了外挂制作成本较低
2. CS:GO-VAC检测强度不高,导致了外挂存活周期 较长。
3. CS:GO无前端实时对抗方案, 处罚作弊具有延后性。
4. CS:GO人物坐标全局下发,导致游戏会长久 的存在FPS通用的透视自瞄 等 外挂风险
*本文转载来自游戏安全实验室(GSLAB.QQ.COM)
游戏安全实验室
游戏安全实验室
5 篇文章
等级: 3级
||
上一篇:利用系统特性伪装成一个免密登陆后门下一篇:深度剖析Petya病毒:反社会人格的恶性病毒 只为破坏不为牟利
发表评论已有 10 条评论
一月的周先生 (2级) 2017-07-04回复 1楼
我的csgo!
亮了(0)
eval0day (4级) FB特约首席安全顾问 2017-07-04回复 2楼
这不禁让我想起了cf的体验服
亮了(3)
科科 2017-07-04回复 3楼
加个rss会死吗?
亮了(2)
比尔.盖茨 认证作者专栏作者(4级) iplaynice 2017-07-04回复 4楼
学习了 不错
亮了(1)
pine (4级) 2017-07-04回复 5楼
我就说那天玩突入点 有个人提前瞄准 完美怎么不分析
亮了(1)
2kb 2017-07-04回复 6楼
国服不是说外挂永久封号?
亮了(2)
听闻 (1级) 2017-07-05回复 7楼
厉害
亮了(0)
freebug_n (4级) Nigger! 2017-07-05回复 8楼
这外挂多少钱,给我来一个!!
亮了(1)
杀死比尔 2017-07-06回复 9楼
rush B!!
亮了(1)
Praise (2级) 2017-07-07回复 10楼
没有外挂的游戏不是好游戏
亮了(1)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
游戏安全实验室
游戏安全实验室认证厂商
腾讯游戏安全中心运营的游戏安全技术分享及交流网站
5
文章数
1
评论数
最近文章
你还在关注勒索病毒?别人已经转行挖矿!
2017.07.28
游戏CS:GO VAC反外挂系统分析
2017.07.11
CS GO游戏AliveNK外挂分析
2017.07.04
浏览更多
相关阅读
传奇外挂携带恶意病毒Strkon,劫持用户主页及流量移动APP外挂攻防实战反编译挖掘吃鸡(绝地求生)辅助外挂的老窝游戏CS:GO VAC反外挂系统分析代码审计“吃鸡”辅助外挂黑色产业链
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论