“微信跳一跳”辅助脚本的一种简单实现

时间:2021-05-10 23:26:02

引入

微信跳一跳的外挂程序目前已经有很多了,神奇的战士的程序现在已经被优化的非常好了,自动化还是非自动化、ios还是Andriod目前都有着完整的解决方案。于是查找相关资料,最后在Andriod手机上简单实现了功能。

思路

利用adb工具对手机进行截图,将所截得的图片传送至电脑端利用matplotlib打开,通过鼠标点击确定跳的起始点和跳的终点的坐标,通过点到点距离算出需要跳的距离。再对每一个像素点的按压时间与跳的距离的正比例函数关系进行确定后,就可以自动跳到想去的位置了。
代码见github

注意

adb

adb的全称为Android Debug Bridge,就是起到调试桥的作用,作为一名开发者倒是常用到这个工具.借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、卸载软件、系统升级、运行shell命令等等。adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

一些要提前安装好的库

numpy matplotlib FuncAnimation
还有些库已经自带了。

关于按压时间和距离的函数

通过抓包可以分析出跳的位置基本上是(320,410)。但是正比例函数的确定,笔者是自己多次尝试试出来的,正比例系数为2.1;但是在查看别人的代码的时候正比例系数却为1.35(笔者的1.35小人基本跳不到下一个平台上);所以这个正比例系数或许和手机有关,所以建议最好自己尝试一下。

用法

1.安装adb,添加路径至环境变量(方法
(程序运行时是会在程序所在的文件夹中优先查找,然后到环境变量中去查找),如果不想添加至环境变量,则程序需在含有adb.exe的文件夹中运行。adb下载地址
2.安装相关库
3.连接Andriod手机并调制usb调试模式(不是官方驱动,而是开发者模式下的usb调试模式)
4.打开微信跳一跳,运行程序;程序会显示一张截图,通过鼠标点击跳的初始点到跳的终点,手机上的小人就会自动跳至鼠标单击的位置。
5.小人跳后,屏幕上的截图会自动更新。

关于微信跳一跳的外挂检测

之前为了测试运行了一个大神的代码,自动化进行跳跃(不需要鼠标点击),很快也很高兴的达到了前所未有的高分,但是分数立刻就被清零了,说明程序检测到我开了外挂。当时就在想是否有一个机制,能检测到我使用了截图函数呢?不可能。很有可能是大神的代码中固定了每次间隔跳跃的时长,所以程序检测出来并判定为开了挂。 这次自己写了程序,发现还是会被判定为外挂,说明应该和代码本身的关系并不是太大,有人靠实力跳到500多分说明并不是有高分限制。所以应该是有一个成绩曲线检测程序,当成绩曲线上升过快的话,很明显不符合个人的进步程度,所以程序判定为开了挂。换言之,如果一次把分数加一点,符合成绩曲线的增长,就可以刷到自己想要的高分。