大家普遍认为游戏漏洞挖掘难度大,游戏漏洞挖洞过程繁琐,事实不是这样,本文以简单的手游漏洞案例和挖掘过程为大家打消游戏漏洞挖掘的思想壁垒。首先我们先了解一下游戏外挂和反外挂。
浅谈入门游戏漏洞挖掘
0x01初识
大家普遍认为游戏漏洞挖掘难度大,游戏漏洞挖洞过程繁琐,事实不是这样,本文以简单的手游漏洞案例和挖掘过程为大家打消游戏漏洞挖掘的思想壁垒。首先我们先了解一下游戏外挂和反外挂。
外挂
手游外挂其实有很多功能,大家应该只了解过穿墙、透视等功能,也会看到存在刷道具、秒杀活动领取的小工具,其实这些外挂和工具都是利用游戏漏洞去实现,本人特意去ios游戏畅销榜进行随机测试,很多游戏仍然存在秒杀和刷道具的漏洞。这里本人会从基础开始讲解。
反外挂
首先介绍一下目前市场上存在游戏防外挂服务,我百度搜了下面这款服务
可以看到主要是以加密为主,服务商通过技术手段对手游进行加固,如
将通讯参数进行加密、防止逆向、防止内存等等,服务端未作修改,若是存在漏洞,经过加固只是攻击成本增加实际漏洞依旧存在。
其次是另外一种服务
这款服务本人觉得更优于第一种,服务会使用人工对游戏进行风险评估和检测,挖掘游戏中存在的漏洞,从服务端上解决漏洞问题,而不是加密不让别人去修改,这是我一直提倡的解决方案,因为加密的方式可以防止一些技术较弱的小白,而无法防御技术能力很强的大佬。
总结:
以上的介绍只是想告诉大家,反外挂服务基本分为两种,一种是通过加密去解决,另一种是排查出漏洞并在服务端进行修复。并且在和手游行业相关人员交流中发现,普遍认为使用了加密这种加固就无法对游戏进行修改。
0x02挖掘
本人比较抗拒加密这种加固手段,第一是因为自己本身熟悉解密,第二则是在内存方面加密并不能影响进行漏洞挖掘和测试。接下来我想大家介绍如何绕过很厉害的防外挂检测,进行简单的游戏漏洞挖掘。声明一下,如果白帽子要测试,一定要选择自家产品或有SRC的厂商开发的游戏或者获得合法测试授权的游戏进行测试,遵守法律,禁止恶意利用,避免不必要的麻烦。
工具
安卓模拟器
Cheat Engine(内存修改器)
过程
首先打开Cheat Engine,以后简称为ce修改器,如下图操作可以看到进程名为XXXXHeadless.exe
,这个就是你需要加载的进程了。加载后就绕过了很厉害的防外挂检测如闪退类的检测。
ce修改器如同使用burp一样,加载好进程(相当于配置好代理一样),即可使用。下面就简单的讲解一下ce修改器的功能。
比如我们要修改道具数量为负数,来测试是否可以刷道具,现在道具数量为2
然后在搜索框中输入2,点击首次搜索,这时会把模拟器中所有数据为2的内存值找到,会有很多很多。
接下来把数量修改为3,然后在ce修改器中输入3点击再次扫描,意思就是把刚刚为2但是现在变成3的内存值筛选出来
如果数据太多,不好定位,那就继续通过搜索4、5、6等等来筛选,确定数量的地址后,在地址上面双击,这个地址会到下面去,然后在下面的值上面双击,输入你要修改的值,例如-1,点击ok,然后到游戏中点击购买,如果成功了会看到货币增加了或者道具增加了。
如果我们遇到一个值并不知道是什么操作的值,那该怎么办呢,比如我们在找一个游戏中的人物id,可能你们经常在抖音上会看到农药又出新人物啦,有什么办法提前看到呢?
选择一个人物,扫描类型选择未知的初始值,点击首次扫描,意思是(把模拟器中的所有内存地址全部找到
然后选择一个其他人物,扫描类型选择变动的数值(意思是把所有有变动的数值筛选出来,因为我们选择的人物变了,那他的id也就一定变化了)
当然了数据量太多我们也可以通过一些方法减少数值,例如随便切换几个人物,最后又选择回最开始的人物,然后扫描类型选择未变动的数值,点击再次扫描。
这将会是一个很漫长的过程因为随机因素太多,最后剩一百个数据或者几百个数据时怎么筛选都不会减少,那么就需要我们去看每个数据的值来判断了,首先把你认为可能是人物id的值双击到下面的栏中。
通常这些值是有一些规律的,比如在左上角可以看到“先前值”和“当前值”,通过分析,一般id都是1000253,1000159这种两次数据很接近的值,然后在挨个修改来查看是否修改正确了,找到正确的值后,就可以通过修改id值然后点击人物技能或者人物介绍来查看是否有一些即将更新的人物技能出现,所以不建议游戏在更新前就把人物资源放进客户端中。
游戏id是我很喜欢搜集的一个点,因为很多这方面的漏洞,比如副本id,通常修改副本id可以反复的进入到某个特定任务副本重复获取奖励,职业id,通过修改职业id来创建一些还未开放的职业,技能id,通过修改技能id来学习或者释放一些测试使用的技能,或者并未上线的技能。还要说明一点,内存中可能1并不一定等于1,1可能等于0(有些是从0开始计算),可能等于49,可能等于1072693248(链接:数值转换工具 提取码:1234 )
所以当我们找不到这个值时不是不存在,而是可能这个值并不是表面上看到的这样,基本上就是搜索一些内存值然后进行修改来测试是否有漏洞。
比如:一个副本的特殊类型
通过修改前置条件来直接点击后面的天赋:
0x03总结
游戏漏洞目前还算是比较好挖的,其实和业务逻辑漏洞都差不多,都是要靠不同的思路来挖掘漏洞,可以尝试着从有src游戏业务的游戏进行测试,在这里我比较推荐陌陌src,目前是对游戏漏洞奖励最高的一个src。挖掘想学会挖掘游戏漏洞只能多测多去尝试,祝大家也可以在src中提交自己挖掘到的游戏漏洞。
- 本文作者: 带头大哥
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/50
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!