前言
最近微信跳一跳这个小游戏火爆, 由于朋友排行版的存在, 激发了我们的上(pan)进(bi)心. 除了正常方式爆肝提高分数以外, 也有各种技术宅的非正常手段出来:
- 抓包拦截请求, 直接改游戏结束之后, 提交到服务器的分数
- 物理外挂, 用机械手指和摄像头, 识别距离, 计算点击时间, 控制机械手指按下去的时间
- 利用手机调试模式, 屏幕截图, 识别方块距离, 计算点击时长, 调用系统函数模拟点击屏幕
第 3 种方法相当于第 2 种方法的软件版, 本文用的就是这种方式
ps:
目前方法 1 的提交漏洞已经被修复, 方法 3 特别是方法 2 原理上是模拟人的操作 (代码中有故意随机偏移落地点和停顿间隔), 理论上微信是没法区别的, 但是微信貌似有一套成长曲线检测方法, 如果你的进步曲线不科学, 还是会把你分数清零的
准备
-
硬件
- 装有 Mac OS 系统的电脑
- iPhone 手机
- 数据线
- 🤣
-
软件及依赖 (安装步骤在后面)
-
wechat_jump_game ( python实现的 微信《跳一跳》辅助, 支持 Android 和 iOS)
- Python
-
WebDriverAgent ( facebook 出品的一个让 iOS 设备提供远程控制功能的服务端)
- Xcode (Apple开发工具)
- Carthage (Cocoa依赖管理器)
- Homebrew
-
facebook-wda (通过连接到 WebDriverAgent 来控制 iOS 设备的 Python 客户端库)
- Python
- libimobiledevice (这里用于把手机的端口映射到电脑)
- Homebrew
-
wechat_jump_game ( python实现的 微信《跳一跳》辅助, 支持 Android 和 iOS)
安装
- 已经安装过的软件可以跳过, 本文假设是个新电脑~
- 为了观看顺畅性, 减少跳转, 本文结合了很多其他教程, 遇到问题时可以跳到参考教程看看
- 以下代码段中的命令都是在终端中执行
安装 Xcode
安装 WebDriverAgent (参考教程)
-
安装 Homebrew :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
安装 Carthage (参考教程):
brew install carthage
-
下载 WDA 源码:
-
运行 WDA 初始化脚本:
- 更改执行目录到刚刚下载的 WDA 的文件夹
cd /Users/xxx/xxx/ #记得改成 WDA 的目录
- 执行初始化脚本
./Scripts/bootstrap.sh
- 更改执行目录到刚刚下载的 WDA 的文件夹
-
打开 Xcode 运行 WDA 项目
- 真机运行需要设置证书, 为了防止跟别人冲突可以先修改 BundleID
- 选择 WebDriverAgentRunner 这个 target
- 运行测试, Product -> Test, (是
Test
不是Run
) - 如果运行成功, Xcode 控制台会打印 WDA 服务端地址, 如
http://10.0.0.1:8100
- 可以加上
/status
合成一个url地址。例如http://10.0.0.1:8100/status
,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。
安装端口转发工具
brew install libimobiledevice
iproxy 8100 8100
- 这个时候就可以用 http://localhost:8100/status 来访问刚刚那个地址了
安装 facebook-wda
- 先安装 Python3: https://www.python.org/downloads/release/python-364/
- 执行命令
pip3 install --pre facebook-wda
安装 wechat_jump_game
拷贝
wechat_jump_game/config/iPhone
目录下对应的设备配置文件,重命名并替换到wechat_jump_game/config.json
-
更改执行目录到刚刚下载的 wechat_jump_game 的文件夹
cd /Users/xxx/xxx/ #记得改成 wechat_jump_game 的目录
执行命令
pip3 install -r requirements.txt
开始愉快的玩耍
- 打开 微信 小程序 跳一跳 到游戏界面
- 电脑上执行命令
python3 wechat_jump_auto_iOS.py
- 围观跳一跳自动跳 🤣