我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!

转载 2018年01月14日 00:00:00

0?wx_fmt=gif&wxfrom=5&wx_lazy=1


从前几天微信最新版本 6.6.1 的更新开始,微信小程序游戏“跳一跳”似乎在一夜之间风靡了朋友圈。


640?wx_fmt=png&wxfrom=5&wx_lazy=1

它甚至比五六年前的飞机大战游戏都火爆,这种小游戏的火爆不仅仅是因为有魔性、有意思,更重要的是可以进行好友 PK!

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

“跳一跳”的小游戏推出后,很多准备奋发向上的同学,这个假期的美好愿景被毁了。


为了多跳几步,以及朋友圈的排名,

大家在整个假期都是这样的:

0?wx_fmt=gif

就这样跳啊跳...

挤地铁跳,蹲马桶跳,乘电梯跳,

静默的每 1 秒都不能浪费

0?wx_fmt=gif

在办公室,还要时刻警觉后面...

0?wx_fmt=gif

说好的工作呢...我控制不住我自己啊!

0?wx_fmt=gif

可是很多人费尽心思跳了一下午

也没超过 100 分

但排行榜里四分之三的人都超过三位数了……

真是扎心了……


今天小编来告诉你,如何才能获取高分,如何才能占据朋友圈榜首?


游戏攻略拿高分


普通版本的高分秘籍是这样的:

  • 如果你每次都能挑到各自的正中间的话,可以 + 2 分,如果连着跳到中间会 + 4、+6、+8、+10……

  • 跳到污水井盖上面,停留 2 秒,等到下水道声音响起直接 + 5 分

  • 跳到魔方上面,停留 2 秒,等到魔方转正会直接 + 10 分

  • 跳到音乐盒上面,停留 2 秒,等到音乐响起会直接 + 30 分

  • 跳到便利店,停留 2 秒,等到便利店开门会直接 + 15 分

640?wx_fmt=png

以上是针对普通用户,但对咱们程序猿来说用这套太 Low 了,接下来要说的是如何从技术层面去实现高分:

技术手段实现高分

通过 Python 手段


在 Github 上面已经有人用 Python 来玩跳一跳这个游戏了,想多少分就有多少分。


GitHub 地址:https://github.com/wangshub/wechat_jump_game

?

?


步骤:

  • 安卓手机打开 USB 调试,设置》开发者选项》USB 调试。

  • 电脑与手机 USB 线连接,确保执行 adb devices 可以找到设备 id。

  • 界面转至微信跳一跳游戏,点击开始游戏。

  • 运行 python wechat_junp_auto.py,如果手机界面显示 USB 授权,请点击确认。


很有趣!简单点说就是:用电脑帮你玩微信跳一跳,全自动,不用手动。效果:

0?wx_fmt=gif

这里梳理一份稍微完整一点的操作步骤,以 Mac 的为例,Win 的思路是一样的。


另外,这里用的是安卓手机,iOS 也差不多,不过要下载一个 5.5GB 的 Xcode。


1、下载程序,打开下面的链接,点右侧 clone or download,再点 download zip。

640?wx_fmt=jpeg

2、解压 zip 文档,再把文件夹挪到桌面,打开文件夹,你会看到很多东东:

640?wx_fmt=png

3、打开 mac 系统自带的“终端”,这是一个命令行应用,win 用 cmd 就可以了吧。

640?wx_fmt=png

4、通过终端进入文件夹,命令行如下:


~/Decktop/wechat_jump_game-master


5、安装 pip,在终端输入 sudo easy_install pip 再回车,可能要输入密码。


6、安装各种依赖程序,在终端输入 pip install -r requirements.txt 再回车,系统会自动安装。


requirements.txt 就是文件夹里的一个 txt 文档,里面写着会自动安装哪些程序。


pip 就是第 5 步安装的程序,如果没安装,pip install -r requirements.txt 将无法执行。

640?wx_fmt=png

7、安装 adb,打开下面的链接查看,有 3 种方法,建议用第二种,是英文,如果你不懂英文可以百度中文教程。


https://stackoverflow.com/questions/31374085/installing-adb-on-mac-os-x


8、打开安卓手机的设置 - 开发者选项 - USB 调试(如果没有开发者选项,可百度打开开发者选项的方法),用 USB 线连接手机和电脑,手机可能会弹出对话框,点同意。

640?wx_fmt=png

如果出现运行脚本后小人不跳的情况,请检查是否有打开“USB 调试(安全模式)”,记得顺便打开 USB 模拟点击。

640?wx_fmt=jpeg

9、在终端输入 adb devices,如果看到下面这种信息,说明 adb 已正确安装,也说明电脑成功检测到手机。

640?wx_fmt=png

如果你系统是 Win10 或 Win8 可能需要先设置一下“禁用强制驱动程序签名”。

640?wx_fmt=jpeg

不然会出现下面的“文件的哈希值不在指定目录中”安装不上 adb 驱动的问题,网上有教程请自行学习。

640?wx_fmt=jpeg

10、打开微信跳一跳点开始,在终端输入 python wechat_jump_auto.py 点回车,游戏就会自动开始~ 请根据手机分辨率运行相应的 *.py 文件。

640?wx_fmt=png

注意:

  • 我跳了很多次,最后都会掉下盒子,暂时最多只能跳到 1800+ 分,不能一直跳下去。

  • 分辨率不同,配置文件也不一样,具体看 config 这个文件夹。

  • 别刷太高分,有人刷到 4000,结果分数被微信清零。


实验结果:

0?wx_fmt=gif

只要有耐心,你就是王者

640?wx_fmt=jpeg

下面分析一下代码,Main 部分有一个 While 循环,只要你不终止,它会一直重复操作。

640?wx_fmt=jpeg

Main部分代码里面主要调用的自定义函数有三个,还有一个 time.sleep 是为了延迟一下:

  • pull_screenshot() #获取图像

  • find_piece_and_board(im) #根据图像获取两个点的坐标值

  • jump(math.sqrt((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2))#根据两点距离和手机像素计算按压时间并 JUMP


pull_screenshot()

640?wx_fmt=jpeg

这个函数主要是利用 adb 来获取图像,这里顺便说一下“adb”,adb 是连接 Android 手机与 PC 端的桥梁,可以让用户在电脑上对手机进行全面的操作。


借助 adb 工具,我们可以管理设备,还可以进行如安装软件、系统升级、运行 Shell 命令等等操作。如“pull”就是获取设备中的文件,想更多了解 ADB 请自行学习~


find_piece_and_board()

640?wx_fmt=jpeg

根据图像获取当前小人位置和落点的坐标系(piece_x, piece_y, board_x, board_y),这个是这个脚本中的核心部分。


jump

640?wx_fmt=jpeg

根据设定的“长按的时间系数”计算需要的按压时间,这个系数是根据手机分辨率推出来的,按压时间设定不小于 200ms,核心命令是 adb 的“input swipe”。


“input swipe”模拟的是手指在屏幕上的滑动事件,如果两个点坐标不变化就成了长按了。


代码中四个变量的设置是:“swipe_x1swipe_y1swipe_x2swipe_y2 = 320,410320410”,所以是模拟的长按,其实滑动也是可以的。

伪造 POST 请求刷分


除了可以用 Python 实现高分,还有网友爆料还可以直接伪造 POST 请求刷分,直接改分数。


昨日,V2EX 网站上一篇题为《微信跳一跳 可以直接更改分数, POST 请求没有校验… 》的文章获得大量曝光,帖中指出微信小程序存在漏洞,跳一跳小游戏可以直接改分数。

?wx_fmt=jpeg

用户朱鹏飞根据帖子的指引,发现甚至连微信小程序、小游戏的源代码都可以直接下载,只需要知道 appid 和版本号,就可以直接构造 URL 下载后缀为 wxapkg 的源码包,不需要任何验证。


据微信公众号“小专栏平台”消息,截自 1 月 1 日 23:50,微信官方已经修复了这个漏洞。不过,据说一些老版本的微信还是可以抓包获取包地址。

?wx_fmt=jpeg

最后一个,微信已经修复 Bug(部分版本没有修复),但只要利用好前面两个攻略,再配合对节奏的把握,登上朋友圈前几完全不在话下。


话不多说,赶紧去玩吧!!!


0?wx_fmt=png

手把手教你用 node 玩跳一跳,跳一跳刷分

github: https://github.com/aOrz/wx_jump_game 实现原理: 用 adb,将手机截屏,并传输到电脑上,将图片载入到 canvas 中,通过 getImage...
  • u013102172
  • u013102172
  • 2017年12月30日 19:32
  • 578

微信跳一跳外挂辅助原创main方法直接运行,

  • 2018年01月09日 16:48
  • 9KB
  • 下载

微信小游戏跳一跳作弊方法

微信小游戏跳一跳作弊方法本实现方法代码来源:https://zhuanlan.zhihu.com/p/32473340原理粗解微信小游戏跳一跳,本质上时一个半离线游戏,它的与服务器的通信其实是在于或者...
  • kiwi_Fung
  • kiwi_Fung
  • 2017年12月30日 16:46
  • 3271

【游戏】教你用Python来玩微信跳一跳

工具介绍   Python 2.7   Android 手机   Adb 驱动         Python Matplot绘图 原理说明 : (转载自https://zhuanl...
  • g1fdgfgdf2_
  • g1fdgfgdf2_
  • 2018年01月11日 11:44
  • 367

安卓+windows7下,用python玩微信跳一跳经验总结

原github地址:https://github.com/wangshub/wechat_jump_game 里面所有使用步骤方法都很详细,我就总结一下我实验过程中遇到的问题,供大家参考。 我用的...
  • u014256231
  • u014256231
  • 2018年01月04日 16:34
  • 2091

微信跳一跳脚本制作思路

一、由来及游戏介绍 前段时间微信小游戏“跳一跳”火遍朋友圈,尤其深得妹子喜爱,刷分上榜排名攀比顺袭,昨天一兄弟跟我说想刷刷分,一听是要用来撩妹,@!#¥……%@(省略一万字),准备着手做个脚本,我只...
  • xiaoping2994
  • xiaoping2994
  • 2018年01月08日 18:22
  • 3135

微信跳一跳HTTP代理新改分方法

  • 2018年01月09日 01:01
  • 916KB
  • 下载

用python玩跳一跳

微信跳一跳被同学说是淘宝买的,委屈巴巴,jpg。为了证明清白,把实现过程写下来。 游戏人物跳跃的距离是由按压时间决定的,所以基本原理是 1.利用adb的adb shell screencap -p...
  • zzpdbk
  • zzpdbk
  • 2018年01月02日 22:06
  • 2665

使用python玩跳一跳超详细使用教程(小白操作)

微信更新后出来了一块比较火的小游戏,要是一款不涉及到排行的游戏,可能 没人去关注这款游戏。最开自己一直苦练技术,想在微信排行上面装一装,练了好久才跑三百多分.有一个大神发布了,一个Python脚本自动...
  • qq_37929849
  • qq_37929849
  • 2018年01月03日 12:24
  • 470

微信跳一跳改分方法

背景最近微信更新后推出了一款小游戏 跳一跳 大家都跳得十分辛苦也跳不到高分, 本博文教大家如何改分 第一步、安装代理证书 浏览器扫描以上二维码安装证书 android 凭据用途请选择VPN和应用 ...
  • Dodd9199
  • Dodd9199
  • 2018年01月02日 22:57
  • 5360
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!
举报原因:
原因补充:

(最多只允许输入30个字)