当微信遇上 10 万战绩的「跳一跳」外挂,程序员还能“逍遥”多久?
点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
一款热门游戏,普通用户玩的是乐趣,而对于程序员来说,走的是非常人之路,以各种花样技术方法获取羡煞旁人的高分。
跳一跳表情包
自 2017 年 12 月 28 日,微信上线了小程序的游戏功能之后,一款简单休闲类游戏「跳一跳」风靡好友圈,然而当笔者越玩心跳越快才达到 200 分之时,第一名已经从 888 分直接变成了 100000 分(貌似最高分是 10 万),这究竟是哪家大神如此厉害?
深扒一下,高分攻略往往没有我想的这么简单,除了上周 CSDN 发过的一篇《微信小游戏「跳一跳」技术手段高分秘籍实现》之外,更有程序员研发出「跳一跳」物理外挂,该程序员自制了一个小型机械手臂悬挂在手机屏幕上方,然后用尺子量出两个箱子间的距离,将数值输入电脑,机械手臂就会根据距离自动调整按压屏幕的时间,精准无比,达到 6000 分也是很容易的事情。
一山还比一山高,前有物理外挂,后就有 AI 图像识别、卷积技术实现。Cocos 引擎创始人王哲老师利用纯软件解法,用 adb shell screencap 截图后,对图像进行分析,然后用 adb shell input 指令来模拟触摸时间,运行结果如下:
图片来源:Cocos 微信公众号
可想而知,程序员为了高分也真是操碎了心,对此,不少网友表示,如今真是一个技术改变战绩的时代。
「跳一跳」的严重 Bug
其实不然,当很多程序员开发外挂的同时,没想到这也是一个 Bug 刷新战绩的游戏。近日,有网友在 V2EX 网站上发布了一篇题为《微信跳一跳 可以直接更改分数,POST 请求没有校验… 》(https://www.v2ex.com/t/419056)的文章,表示微信小程序「跳一跳」游戏可以直接伪造 POST 请求刷分,其中只需要知道 appid 和版本号,就可以直接构造 URL 下载后缀为 wxapkg 的源码包,不需要任何验证,直接下载微信小程序、小游戏的源代码。
为此,独立开发者朱鹏飞对帖子作者所分享的「跳一跳」源码包地址进行了验证测试,具体过程如下(引用部分转载自「小专栏平台」公众号,已获得原作者授权。如果大家想要微信跳一跳小游戏以及其他十几个小游戏源码,可以到「小专栏平台」公众号,回复「微信小游戏」即可获取到):
第一步,我先试着用帖子作者拼接好的跳一跳源码包地址测试,发现能够下载,不需要任何验证,只需要知道这个地址,直接任意浏览器或者下载工具打开都可以下载。
第二步,再用帖子中的解包 Python 脚本把源码包解压成源代码。
第三步,在本地微信开发者工具中新建一个空白的小程序或小游戏的项目,不要选择快速启动模板。
第四步,把刚才解压出来的源代码复制到刚刚创建的项目目录中,开发者工具会提示编译出错,这个只需要新建一个game.json文件即可。
文件内容不能为空,写一对大括号进去,或者加上deviceOrientation的配置,这句话的意思是游戏竖屏玩。
保存后你发现游戏还是编译不通过,还需要修改最后一项,点击开发者工具右上角详情按钮,把调试基础库改成game。
好了,运行起来了:
目前,微信已经修复了该 Bug。
小程序带来的安全问题
曾经的「左右脑年龄测试」、如今的「跳一跳」游戏将渐渐冷却的小程序重新带回大众视野的同时,也不由得引发我们的深思,小程序真的安全吗?我们的用户信息会被窃取吗?会不会再次发生上述“小游戏源代码可直接下载,修改分数”等情况?
事实上,从小程序的机制上分析,小程序是由微信提供接口,服务商只需调用微信的接口就可以实现服务功能,同时任何一家公司上线的小程序都需要通过微信的规范制作及审核。对比以往传统的 App 客户端,两者之间形式的代码不同,这也使得曾经针对 App 客户端的攻击行为失去了对象,如今只有微信后台出现了安全问题,才会波及到小程序的安全。也就是说,小程序开发商并不能拿到用户的微信账号及密码,用户的更多信息还是掌握在微信的手中。
对于微信信息安全方面,其官方账号“微信派”于今天发布声明表示,“请大家放心,尊重用户隐私一直是微信最重要的原则之一,我们没有权限、也没有理由去“看你的微信””。
而针对此次「跳一跳」的 Bug,其开发团队表示,元旦期间一直在加班做反外挂逻辑。因此,想要走捷径获取高分的用户们,还得看哪方的程序员团队更强了。
归根结底,身处「互联网+大数据+人工智能」的时代,信息没有绝对的安全,且仅对于微信小程序本身,随着小程序的不断扩展,作为用户,还是应该提高自身的信息安全意识,对于不知名的小程序尽量减少添加,而作为一名开发者,探索技术的同时希望可以成为一名反 Bug 专家,而不是一名外挂提供者。
更多的观点,欢迎留言分享。
————— 推荐阅读 —————