DNF外挂对抗学习记录
Last Update:
Word Count:
Read Time:
DNF外挂对抗
ref: https://km.woa.com/articles/show/532979?kmref=search&from_page=1&no=5
DNF 是恶意漏洞的重灾区
卡概率,中彩票。 发放奖励BUG
拍卖行复制物品
无中生有,拍卖行上架的BUG
退出卡奖励,领取和发放BUG
DNF外挂
通用外挂
硬件外挂
定制外挂
通用外挂
通用外挂
调试器(OD、Ollydbug),静态分析(IDA、)CE,协议抓包,模拟按键,变速器
多变种下的共性特诊之CE工具
共性特征:程序窗口整体布局
找共性的维度。
按键精灵
Q语言开发,(VB script 脚本开发)基于Com插件功能开发实现。
分析Com调用合法性判断,找打如下特征。
PE文件头初始化。
初始化 + 0x40 未kernel32的模块地址
+0x44 为 GetProcAddress地址
相关环境变量的初始化
CQMEngine
CQMEngineHost
通用外挂:模拟按键检测的对抗思考
对抗思路:输入源+行为结果
对抗难点:输入源绕过门槛较低
DNF工作室挂一栏
特诊检测:特殊软件,如答题IP、虚拟机。
功能检测:模拟按键,截图。
行为检测:机器聚集,行为聚集等模型,如局域网机器。
验证码作为工作室打金对抗门槛手段之一,运营上钓鱼执法。
以前是采用验证码方式,但外挂会截屏识别,后续 采用了扫码人脸识别,关联到自然人,认证成本大,外挂难绕过。
通用外挂小结
趋势:
- 外挂技术获取渠道越来越广,外挂工具不是难事。
- 工具自身也是一个平台,外挂开发门槛低。
- 多款工具相互间形成工具链。
风险:
- 单款工具多变种,特诊覆盖全有挑战。
- 外挂平台化,传播风险大。
应对:
- 技术方案:监控多维度、门槛有深度
- 打击方式:定制-功能-通用相互结合
外挂硬件化趋势
在DNF、CF等十多年老业务上面临了纯硬件外挂新挑战。
已有安全方案无法覆盖,并有迅速发展的趋势(同步器,录制器,鼠标宏,单片机)形成了一条完整的硬件外挂黑产产业链。
同步器硬件特征:
键盘和鼠标硬件ID中的PID和VID相同。
鼠标移动的特诊:系统底层URB的数据包,从包内容和正常USB键盘输入一致,不过鼠标输入还是有些差异性。
MOUSE_MOVE, WM_IMPUT、Direct Input这几个输入的区别。
使用了绝对坐标,而正常鼠标使用了相对坐标。
同步器相对位移最小粒度较大,最小Delta=52,正常鼠标位移量为1。
背景:
同步器恶意产出20%+,严重影响正常的经济系统。
目标:1. 减少对正常玩家的影响,2. 增加同步器的成本。
思路:
- 把相同变成不同,塞入随机因子,让相同输入随机起来。(角色出生坐标,BOSS的最终房间,副本当中怪物出生坐标)
脱机外挂
脱机外挂分为 全脱机和半脱机外挂。
全脱机外挂可以完全独立游戏客户端运行起来。直接发包给服务器。
动&静对抗:每个数据包中的附加数据可以实现每个包加解密使用不同的处理
动态协议加密。
优势:运营成本低,千人千面
劣势:有性能损耗,配置协议ID
静态源码乱序:攻击者需要重新分析协议字段含义,来模拟和正常游戏的逻辑交互。如一个月换一次字段顺序。
优势:逆向成本高,性能较好
劣势:随版本发布,对抗周期不可控
半脱机外挂
外挂自组包调用游戏函数发包
检测方法:检测堆栈函数名称是否合法。
缺陷:堆栈调用检测被通过秒该游戏代码进行函数调用绕过。
考虑触发时机:Msg(Timer)、Thread。
改进方法:单线程划分游戏时间片,进行堆栈调用检测。
对比常规的堆栈调用检测,在非游戏逻辑时间周期内,进行非法游戏函数调用检测,性能更优,效果更佳。
定制外挂
DNF 全屏攻击
实现方式:
碰撞修改,通过修改碰撞逻辑代码,一次伤害多个怪承伤。
模型修改,修改人物模型。
吸怪类型,修改怪物坐标,聚集到一起,造成伤害。
全屏效果类型,释放1个和N个效果,对对多个怪物造成伤害。
日常对抗流程:
外挂输入:
样本测试驱动
自身数据驱动
客户需求驱动
外挂分析:
外挂功能分析
游戏行为分析
过方案分析
外挂对抗:
方案设计
策略调整
对抗打击
反补外挂监控发现。
实现方式一览:
CALL函数
主线程劫持CALL,注入CALL,R0CALL
秒改CALL
模拟发包
改代码:
模块划分:游戏模块、系统模块、方案模块、驱动模块。
修改方式:秒改代码,劫持修改代码,动态修改代码。
读写数据
数据类型:全局数据,动态数据,运行期数据(virtab,站数据)
修改方式:秒改数据,锁定数据,数据异常
改游戏资源
静态文件(输入源)-》加载到内存(数据)-》使用时机点(实时数据)。
协议攻击:
修改协议内容
协议重发
协议拦截感知
基于游戏逻辑的分析思路:
开挂前采样,开挂中抓现行,开挂后,黑白校验。
旁路逻辑:
从游戏样本分析:
1、感知增强,读取数据截图(OCR)
2、输入增强,模拟输入
基于旁路逻辑
进程外:协议、资源、跨进程读取
进程内:引擎、脚本、进程内读取。
从游戏游戏分析
谁读取了我,反向验证
访问断点
修改输入验证。