·
当然这样做是不对的...
对不起腾讯对不起微信对不起千千万万的游戏玩家,只不过我追求的不是游戏,而是开挂本身。
所以,我先说一段题外话...
从前,有个带我吃鸡的学长,额不,是带我学习的学长,我们经常玩某个诸神之战的跳伞游戏。
我总觉得透视和染色不能算是外挂吧,那只是修改了我们的内存,又没有改游戏数据
可我学长说:“破坏了游戏的公平性,就是开挂!”
想起他坚毅的表情,时常让我感到羞愧,然后他继续每天邀我开挂吃鸡...
简而言之,我想说的是,兴趣才是最好的老师,就像如果对C语言的链表一点也不感兴趣,当然一个星期也学不到什么,但是如果想玩出来跳一跳的外挂,可能难度更大的adb调试,一晚上就能摸索出来。
好的,聊回正题,下面我们说到跳一跳怎么开挂,这样是不好的,既然你执意要走上开挂这条不归路,这可能是你将会遇到的:
原理
按压时间总是与跳的距离成正比吧,基于这个原理,我们就能轻易的算出来这个函数关系吧,于是就有很多物理外挂应运而生
通过adb(Android Debug Bridge)对手机截屏,并把截图发回电脑处理。
计算出来起点坐标和终点坐标,有了距离也就方便时间,模拟按压,自动跳。
如果你对原理和代码很感兴趣的话,这里有知乎前辈的文章,详述了如何找坐标以及相关参数什么的。
步骤
首先,你总要有个Python吧,至于Python如何安装调试,你可以看我上一篇:
听说还要有pip,
pip类似CentOS里面的yum
虽然我也不知道这三个词都是什么意思...
但是听说最新版的Python里,可以直接使用pip,在cmd里输入pip
看到这个就可以了
adb的安装
因为adb驱动里没有自动配置环境变量,所以要把它放在一个好记的位置,比如说我就放在了D:\adb
这个时候试一下cmd输入adb,要是没什么反应,就要改下环境变量了,【环境变量】
在path里编辑,把刚刚那个路径添加进去
配置成功后,进入下一步:
拷贝源码
github地址:GitHub - wangshub/wechat_jump_game: python 微信《跳一跳》辅助
下载并解压,这里就不多说了
因为之后的步骤,需要反复借助CD命令,所以说,你不觉得这个文件夹的名字太长了吗,我总是忘记自动补全,所以干脆把名字改的简洁点。
安装安装包
在cmd里,找到刚刚解压完的文件夹,如果你还没有改它的名字,那么它还叫“wechat_jump_game-master”,输入:pip install -r requirements.txt
这是原作者设置好的安装过程,需要等待一会儿,兴许你能看到华丽的cmd下载:
开发者模式
手机里打开开发者模式后,cmd里输入:
adb devices
正确的话,你会看到一串形如序列号的代码:
那么恭喜,你可以直接开始了,运行wechat_jump_auto.py就可以了,cmd里也行,文件夹双击也行。
要是在这里成功就皆大欢喜,直接微信里打开跳一跳,然后就看着玩吧。
也不知道是电脑还是手机的问题,我这里就是找不到设备。
List of devices attached
不成功的调试
以下是我的调试过程,可能只是个例:
我的电脑-->右键,管理-->设备管理器 -->adb interface,
这里有个红色的感叹号
右键,更新adb驱动程序-->浏览计算机以查找驱动程序,然后,选择住下载adb的驱动文件夹,确定,下一步,始终安装此驱动程序软件。
关于这个adb驱动教程,木子学院里有篇文章介绍。
虽然情况和我这里的完全不一样吧...
是的,一般调试到这里就可以了。可是,我的这里,就没有找到驱动...
既然电脑的问题解决了(似乎解决了),再看手机的,我手机是魅族的。
在官网上查的,打开CD驱动器后,有个自动的安装更新什么的,可是到我这里又失败了,红色的感叹号说更新失败,就在网上不断搜索解决方案,无果。
四下打开摸索一下,忽然看见在手机“内置光盘”连接里,居然有一篇adb参考说明书!以下是我粘贴的win7调试:
建立或修改C:\用户<你的用户名>.android\adb_usb.ini文件,在该文件中添加一行文本,内容是0x2a45。
检查ADB设备是否找到(命令行程序中)
adb kill-server
adb devices
参考文档: http://developer.android.com/tools/device.html
反作弊
辗转周折,最后还是成功了,只不过...
绝望...
当然,有时候也会成功显示到排行榜上去的,至于系统是如何反作弊的,有如下猜想:
1.分数太高直接清掉
2.反复跳到最中间可疑
3.短时间内达到高分
4.一下子进步太大,怕骄傲
5.某次,可能系统修改了时间与距离对应参数,发现跳到了修改前该是中心的预定位置
以上的推测,除了1,5,几乎都能找到反例,据其他小伙伴测试的结果是1000以下都是安全的,可是有的时候,跳到200、300,我故意跳错,也会被清除,我也试过阶梯进步的办法,恩,没用。
控制变量法,我都试过来了,还是找不到原因,完全相同的操作,有时可以有时不行..
所以,这个问题,留下来请教前辈吧...