游戏安全实验室 首页 外挂分析 查看内容

【外挂分析】SystemCheats外挂分析报告

发布于:2018-11-16 18:26   |    171674次阅读 作者: 管理员    |   原作者: TP

1. SystemCheats外挂呈现平台主要针对FPS类游戏,也有其他沙盒和开放世界类等游戏的外挂。

SystemCheats支持的游戏外挂如下图所示。

2. 外挂具有较强的反分析和反检测能力,外挂会监控自己是否被分析,如果被分析则会直接封禁外挂帐号以及当前使用的机器。

3. SystemCheats具有较好外挂玩家售后论坛,玩家可以在论坛上咨询外挂使用情况等。

4. 本文是以BO4插件功能实习为例进行分析,SystemCheats外挂是游戏内读取角色、装备等数据,具有自动瞄准、角色透视、3D雷达和2D雷达等功能。

 

分析结论:

1、外挂从后台下载带正规签名的驱动和加密的Shellcode;

2、外挂向游戏内注入868KB大小的Shellcode用于读取游戏数据、绘制方框和自瞄等功能;

3、外挂修改CDXGISwapChain的Present和ResizeBuffers两个虚表函数地址,用于获得执行时机绘制方框和游戏武器等信息;

4、外挂修改了游戏的CreateThread、GetCursorPos、SetCursorPos和GetForegroundWindow四个函数IAT地址,当游戏调用CreateThread且栈大小为4096时外挂感知对局开始开启功能,当游戏GetForegroundWindow函数时外挂判断返回地址为某个地址时执行获取角色、装备等数据的逻辑;

 

外挂功能分析

外挂与后台服务器登录流程如下:

1、 外挂向后台服务器发送机器和帐号密码信息;

2、 服务向外挂客户端下发支持的游戏列表;

3、 外挂客户端选择想要加载的游戏ID;

4、 服务器向外挂下发加密的Shellcode和驱动文件。

可以从外挂服务器下发的配置文件看出,BO4游戏需要注入的进程为BlackOps4.exe,注入延迟为7000.

外挂服务器下发的驱动具有正规签名。

 

分析过程

1. 外挂Shellcode实体

外挂注入到游戏内的Shellcode大小为868KB,如下所示。

2. DXGI模块的虚表修改

外挂首先通过特征码搜索到CDXGISwapChain::Present函数地址,然后修改opcode跳转到外挂的Fake_CDXGISwapChain::Present函数里。

在外挂的Fake_CDXGISwapChain::Present函数中外挂修改虚表中CDXGISwapChain::Present和CDXGISwapChain::ResizeBuffers两个函数地址。

外挂修改完虚表之后,恢复CDXGISwapChain::Present函数的opcode防止代码完整性校验。

外挂会在调用Fake_CDXGISwapChain::Present游戏时候获取当前本地时间、FPS帧率以及分辨率并绘制到游戏屏幕上。

外挂在游戏调用Fake_CDXGISwapChain::Present函数时将获取到的游戏entity坐标转换成屏幕坐标并绘制到游戏屏幕上。

3. 游戏IAT修改

外挂会搜寻游戏内CreateThread、GetCursorPos、SetCursorPos和GetForegroundWindow四个函数的IAT地址并且Hook。

外挂会感知游戏创建线程栈大小,当线程栈大小为4096时外挂设置相应标志位。当感知到该线程的创建时,外挂设置0x24653ec和0x24653e8两个标志,这个标志表示着游戏进入对局。

当执行GetForegroundWindow函数,返回地址符合某种条件时候会执行方框透视的游戏数据获取逻辑。

4. 外挂获取游戏数据的逻辑分析

外挂会调用游戏函数0x13FCE57C0、0x13FAC1C20函数获取游戏Entity,并判断是是不是游戏内的头盔、枪等道具,并获得坐标并在调用Present函数时候绘制到游戏屏幕上。

如下图所示,外挂读取0x147ba6e54在游戏内对应为helmet。




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

分享到:
踩0 赞0

收藏

上一篇:【外挂分析】《穿越火线》外挂功能分析

下一篇:重生娱乐职员透露:《Apex英雄》中国玩家总数不多 但被封的外挂可不少 ... ...

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部