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

游戏CS:GO VAC反外挂系统分析

来源:本站整理 作者:佚名 时间:2017-07-11 TAG: 我要投稿

一.背景:
VAC全称VALVE ANTI-CHEAT,是VALVE公司(V社 )开发的一款反作弊系统,VAC为steam平台游戏通用反作弊安全接入方案(DOTA2与CS:GO均使用VAC)。
本次以CS:GO作为分析目标,对CS:GO上采取的安全方案做基础的分析。
二.分析结论:
通过采取动态调试,静态分析,hook验证等方式,发现VAC在CS:GO上方案如下:
静态保护:
n 壳:所有PE文件未加壳
n 代码混淆:无代码混淆
动态对抗:
n 驱动保护:未发现
n 反调试:简单异常干扰
n 调试检测:简单调试检测
模块检测:
n 窗口检测:未发现
n 进程检测:有枚举进程模块行为
n 线程检测:有感知线程创建行为
n 模块检测:未发现
n 堆栈检测:有堆栈回溯检测
n 内存检测:未发现
其他:
n API:关键API
n VAC2.DLL:存放安全方案预埋,但未在 CS:GO中加载
n 未开启检测:
u 发现多种调试器检测
u 发现多种堆栈检测
u 发现有对游戏状态检测
注:因为分析游戏时多采取单机对战和离线分析,方案分析存在不完整性
三.分析过程:
3.1 游戏安全性分析:
3.1.1 游戏结构分析
CSGO的游戏启动器存放与根目录,根目录下同时也有steam客户端相关dll,steam 编译了32位和64位不同的版本。

游戏主进程存放在.\steamapps\common\下

游戏关键的模块client.dl和server.dll存放在 .\ steamapps\common\Counter-Strike Global Offensive\csgo\bin 下

游戏的引擎engine.dll存放在.\steamapps\common\Counter-Strike Global Offensive\bin 下

3.1.2 游戏启动分析
CS:GO目前只有32位版本, 国服将steam.exe换成csgolauncher.exe,作为游戏启动器,游戏拉起进程如下:

其中steamwebhelper仍然利用的是chrome的cef框架,进行三进程启动

游戏启动后,从行为特征上看,无驱动加载,无内核修改,无全局钩子设置,但是进程内有大量函数被hook,包括load类的,文件操作类的,按键相关的,Dx类的 API也被hook,相关的hook跳转, ZwOpenFile被csgo.exe接管,其他均指向了gameoverlayrender.dll


3.1.3 静态保护分析
选取了游戏中重要的PE文件-csgo.exe, engine.dll, client.dll, server.dll, tier0.dll, tier0_s.dll均未加壳,IDA可以正常反编译




可见,VAC并未对游戏关键模块进行加壳,加花等常见PE保护
3.1.4 动态保护分析
反dump
未做反dump处理,游戏模块可以直接dump
反注入
未做反注入处理,游戏内可以随意注入模块
反调试器附加
未对常见断点类API处理,调试器可以任意附加,没有关于附加上的对抗
3.2 驱动保护及检测
Pchunter未检测到游戏有VAC相关驱动加载
Pchuner未检测到内核hook
遍历目录未发现相关驱动文件
Hook ZwCreateFile,未发现有驱动文件创建
Hook NtLoadDriver,未发现驱动载入
Hook DeviceIoControl,未发现有驱动通信
综上,VAC并没有使用驱动对游戏做保护,也没有使用驱动进行检测。
3.3 调试器检测
常用api检测
hook IsDebuggerPresent,CheckRemoteDebuggerPresent,感知到游戏有基础检测, 触发模块在tier0.dll, tier0_s.dll

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

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