这两天,有个游戏——“羊了个羊”突然火了,连续几天挂在热搜top,热度直追几个月前的“召唤神龙”,身边的人都在玩。魔性的约德尔bgm和普通disco更是让人欲罢不能。
但是,今天整个朋友圈的气氛突然有了些许不对,有人通过99999次,有人一秒通过第二关,瞬间让大家失去了玩下去的动力。 更为甚者,淘宝已经出现了代刷、代练,甚至还收费?!
那么,他们是如何实现的呢?我们团队站在网络安全角度进行了简单分析。
特别声明:
1. 通过外挂破解游戏是违法行为,请各位遵守相关法律,谨慎对待。
2. 本文提到的相关漏洞已经提交给官方团队以及国家漏洞库(CNVD)。
3. 再次提醒各位请注重游戏体验,不要破解。
CNVD 漏洞报告
-
Yakit交互式应用测试平台
-
手机root并刷入Mgisk模块
-
Proxifier app
注意:iPhone可直接导入证书并添加信任即可
-
Yakit交互式应用测试平台
-
手机root并刷入Mgisk模块
-
Proxifier app
注意:iPhone可直接导入证书并添加信任即可
这一步本质上是抓取相关的小程序数据包。也可以使用其他抓包软件(如BurpSuite或者Fiddler),均是类似操作,可参考其他大佬文章。
打开Yakit开启抓包,这边要设为0.0.0.0,准备抓局域网的包
这边可以看到我的IP是172.16.102.xx,记下等会要用
然后这边需要把微信小程序设置成走yakit代理,才能对小程序进行抓包修改。当然直接设置代理是不行的,会发现微信不走代理,这是因为微信不信任yakit,导致无法抓包,所以这边需要先导出yakit证书并复制到手机上安装。
打开手机ca证书,选择手机上crt,pem格式的yakit证书进行安装,随后就会看到信任的凭据里用户栏里有yakit mitm证书,但现在还不能抓包,还需要将证书添加到系统侧,方法有很多种,直接复制文件到系统目录也行,这边我使用Move Certificates模块自动将用户证书复制到系统侧。
使用magisk刷入move certificates包,打开凭据查看,可以看到系统侧已经有yakit证书了
然后将微信进行代理,这边我用的是Proxifier,添加微信走代理,然后设置代理为
http://172.16.102.83:8083
可以看到微信已经走上代理了
环境搭建好后这一步就简单了
手机打开我们要抓包的“羊了个羊”,开启一局新游戏
分析数据包可以发现,开启游戏时存在两个关卡id包,玩家可以通过对游戏id的替换实现降低关卡难度的目的,达到在10秒左右通关。
除此以外,淘宝等出售的外挂工具还可以在最后一个通关数据报文处,不停的重放该报文,实现刷通关数量的目的。这也就是为何突然有人瞬间99999次通关的原因了。
原文始发于微信公众号(四维创智):技术解析|朋友圈为何突然出现了那么多只“羊”