欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

CS GO游戏AliveNK外挂分析

来源:本站整理 作者:游戏安全实验室 时间:2017-07-04 TAG: 我要投稿

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

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

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


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

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

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

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

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

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

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

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

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

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载