csgo辅助_CS GO游戏AliveNK外挂分析

《反恐精英:全球攻势》(cs3360 GO)是《反恐精英》系列游戏的第四部作品,在FPS玩家中保持着很高的知名度,是目前世界上最多玩家之一的FPS游戏之一,2017年4月18日《CS:GO》国服不顾此次CS 3360,首次登上了先锋,这次主要是Alive NK

csgo辅助_CS GO游戏AliveNK外挂分析

插件静态解释

目录特征

插件的目录结构很简单。只有一个可执行文件“Alive NK V617[选项]”。只有“exe”。插件功能启动后,还有注入游戏的result.dll。在CD根目录下生成配置信息,并在游戏目录中生成相应的配置文件,如下所示:

名称工作的路径Alive NK V617[选项]。exe插件登录界面存储目录result.dll插件注入、逻辑实现模块%temp%。注入后,kss.ini插件连接将被删除。日志c:test.txt插件帐户c 3360 test 1 . txt插件剩余时间c 3360 config . XML插件配置文件.csgosteamappscommoncounter-strike global offensive文件特性

插件主界面Alive NK、VMP外壳、IDA拖动代码读取不良

csgo辅助_CS GO游戏AliveNK外挂分析

主界面检测调试,不对立,调试器可以正常进行进一步分析

插件注入模块result.dll(/TemporaryFile),注入后删除

csgo辅助_CS GO游戏AliveNK外挂分析

屏蔽CreateFile和WriteFile hook,获得完整的dll。添加相同的插件和VMP会降低IDA的可读性

csgo辅助_CS GO游戏AliveNK外挂分析

csgo辅助_CS GO游戏AliveNK外挂分析

未加密的插件配置文件config.xml包含配置插件功能的选项

csgo辅助_CS GO游戏AliveNK外挂分析

插件动态分析

行为分析

插件通过两种方法注入,分析第一次注入,直接分析hook过程巡回和一般注入API,记录如下:

csgo辅助_CS GO游戏AliveNK外挂分析

遍历目标进程时,释放要从%temp%目录注入的dll

csgo辅助_CS GO游戏AliveNK外挂分析

最终插件将创建远程线程,并将result.dll注入目标进程

csgo辅助_CS GO游戏AliveNK外挂分析

选择不同的注入方法,发现相同的API调用序列,自动钩子生成,没有dll绑架,没有LSP和注册表相关的修改,插件的第二种注入方法基本上仍然是远程线程注入,与第一种没有区别。

插件注入游戏后,调试器连接后,无法找到插件模块,可以与pchunter模块加载的地址组合,找到插件内存分布。

暴力搜索内存中的相关字符串可以获得相关的字符串信息,字符串分别用作插件中文和英文版本的显示UI。

csgo辅助_CS GO游戏AliveNK外挂分析

此外,加载模块后,模块首先调用游戏中每个模块的导出函数CreateInterface,获取每个游戏模块中的接口

csgo辅助_CS GO游戏AliveNK外挂分析

插件通过获得的界面进一步计算其他函数地址(下图是插件获得的游戏内UI中显示的界面部分)。

csgo辅助_CS GO游戏AliveNK外挂分析

执行时间:

注入插件后,将在游戏右上角绘制自己的窗口。推测插件调用了dx/gui相关的绘图函数,在常规API下反向跟踪断点后,找不到相关的插件调用信息。分析过程中,插件存储配置成功写入游戏界面,并与相应的纯文本字符一起移动到相关逻辑。

csgo辅助_CS GO游戏AliveNK外挂分析

附加后续措施,修改插件虚拟表[[vguimatsurface.55bef580]],用自己的插件地址替换,何时运行

csgo辅助_CS GO游戏AliveNK外挂分析

虚拟表最初指向vgUI2.dll0x180A0,从client.dll. engine.dll、vgUImatsurface.dll等多个地方调用,负责游戏的ui相关功能,插件修改虚拟表指向自己的模块以获取

插件功能分析

透视法

插件提供枢轴选项-ESP功能。与激活开关结合,通过CE检索开关标志位,访问标志位下的断点,反向跟踪,然后移动到ESP功能的入口函数。

csgo辅助_CS GO游戏AliveNK外挂分析

通过后续分析、分析过程跳跃,确认插件temporaryfile.3061bb80是透视相关功能函数(只修改跳跃,枢轴盒消失,其他功能正常)

csgo辅助_CS GO游戏AliveNK外挂分析

进一步分析Temporaryfile.3061bb80实现逻辑,并在函数内调用engine.dll获取相关数据结构

csgo辅助_CS GO游戏AliveNK外挂分析

然后对数据结构进行解析,获得坐标相关偏移,并将最后得到的坐标存储在自己的模块中

csgo辅助_CS GO游戏AliveNK外挂分析

最终调用engine-cengine vgui 33603360 paint进行绘制

第三人称

游戏插件提供第三人视角,可以与陀螺插件一起使用,风险很大

csgo辅助_CS GO游戏AliveNK外挂分析

通过第三人打开和关闭,结合CE搜索密钥标志位,确定游戏中第三人交换机的位置

修改了游戏中的第三人称开关,打开了第三人称视角

陀螺

CS:GO陀螺插件的影响比较差。角色可以快速旋转,插件的UI提供陀螺插件的偏移数据。这实际上是人物的方向和射击方向的偏移。与CE搜索偏移一起移动到插件访问偏移的内存地址

将地址下的访问断点与陀螺仪的开关时间相结合,最终确定result.dll0x5D1D为密钥地址。

分析上述访问偏移的地址,全部存在于插件模块中,后续分析其他几个地址,没有发现游戏直接或间接访问此偏移,因此插件很有可能计算转换了偏移。(威廉莎士比亚,北方执行(美国电视),访问偏移)。

结合Result.dll 5D1D的回溯分析来确定偏移的计算逻辑:

在游戏中使用计算出的这个偏移,很有可能与CE一起检索偏向的浮点数字,以确定密钥地址。

这时打开陀螺的抖动功能,发现视角和计算后的方向不断修改,推测游戏插件很有可能不断重写数据

为了获得修改后的执行逻辑,插件会在计算出的浮点数据下写入断点。

堆栈回溯分析,最终确定陀螺的主要实现逻辑:

插件首先调用eingine的函数来检查游戏的当前状态,如果在大厅,则相应的陀螺功能也不会打开

最后,插件将获取当前陀螺的打开方式和设置的偏移,并将计算出的偏移记录在内存中。

识别时,插件将不再通过vguimatsurface.dll恢复与以前分析观点相关的虚拟表,也不会影响陀螺的功能。通过分析,陀螺获得了engine负责帧绘制相关虚拟表和更改角色状态的时机(原来虚拟表是指client0x22C340)。

然后,hook更改了获得角色视角的虚拟表client.dll0x2BA636(原来应为call client0x23c4a0),修改了当前视角

后期:

1.CS:GO游戏通用安全强度不高,游戏分析门槛低,插件制作成本低

2.CS 3360 GO-VAC检查强度不高,插件生存周期长。

3.CS:GO没有前端实时对抗方案,作弊处罚延期。

4.CS:GO角色坐标全局下降,FPS通用透视等插件危险可能会长期存在于游戏中。

本文由游戏安全研究所(GSLAB)提供。在QQ.COM)上再现

    • 2会员总数(位)
    • 4266资源总数(个)
    • 7本周发布(个)
    • 0 今日发布(个)
    • 1523稳定运行(天)

    365卡盟提供最优质的游戏辅助