H5游戏作弊与防作弊 |
您所在的位置:网站首页 › 可以修改微信小程序游戏的修改器 › H5游戏作弊与防作弊 |
一次微信公众号游戏的抓包、修改源码(Fillder)
今天走在上班的路上,突然回忆起去年的一件事。那是2019年9月16日的一个晚上,我打开了微信,进入一个微信群,看到一位群友分享了一个页面,说玩游戏可以领话费。于是我遍点进去试玩。游戏的玩法是一个球向上弹,上面落下一些球,你需要通过粘在这里球上作为跳板往上,一个球一分,最后玩了四十多分。(现在那个网站已经关了) 思考(如何不讲武德)首先,他肯定是要和服务端进行通信的,最终分数由前端还是后端计算的需要分析接口和代码。 然后开始抓包,我之前是用的Windows上的Fillder工具,然后代理到手机,获取手机上的请求数据。 通过玩一次游戏,可以得知只有游戏结束的时候请求了几个接口,其中一个接口是把分数传给了后台,但是参数使用AES加密了,直接修改分值的手段肯定是行不通了。一般安全意识比较弱的,就不会加密参数,就是通过一些cookie、token之类的判断,这种轻而易举就破解了。 思路转换一下,既然我破解不了他的加密,那我能不能在他加密前把最终的分数修改掉呢? 加密前修改分值他的操作逻辑就是拿到多个参数,然后使用秘钥通过AES进行加密,后台鉴权。如果我们在加密前进行修改,我们就可以直接绕过复杂的解密步骤(基本上没希望)。 进行如下操作步骤:通过接口名找相关的逻辑,层层寻找,靠自己了。即使压缩了,也是有机会找到的。最终我是找到这句n.score = e。然后查看他的文件名,然后通过fillder代理找到想要修改的JS名,然后用fillder的response处理语法,例如替换n.score = e为n.score = 60,那么到时候浏览器上执行的就是我这句话了。 防御方法然后在地铁上突然想起script标签有个属性integrity,他能否解决呢?然后又多思考了一段时间,也没用呀。因为这个东西是加在HTML上的,我能修改js,那我也能修改html文件删了他 提供hash值,来验证浏览器获得的资源(例如从 CDN 获得的)是否被篡改。 后台计算分数,那就需要不停的请求接口记录用户的操作,感觉也不是很合理。而且我也能通过修改JS,更频繁的提交接口多加一些分数吧。 这是微信跳一跳的抓包,他每次接口都不一样,估计做了非常多鉴权和校验吧。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |