微信跳一跳自动生成游戏数据,并发送请求。目前使用样本数据构造 game_data 数据,按后台加密规则加密后发送请求。由于 game_data 的后台验证机制暂不明朗,存在请求提交正常但成绩未录入的情况(很无奈)。
更新 game_data
构造方法调整,若在 ./data/raw
中存在已有真实数据,则不构造数据,直接使用之前的 game_data
加密后发送至服务器端(通过验证几率较高),详见实验结果。
新增 shadow 模式,使用排行榜第一名好友回放数据构造游戏数据,在此基础上将其分数增加 SCORE_SHIFT
作为自身分数提交服务器。
-
安装 node (建议安装 8.0 及以上版本)
-
使用 whistle 或其他抓包工具抓取
session_id
- 安装后在命令行使用
w2 start
启动whistle
- 手机设置 http 代理为上一步弹出的 IP 地址
- 在管理页面,点击
Https
手机扫描二维码或使用浏览器输入对应地址,下载根证书 - 信任根证书后,勾选
Intercept HTTPS CONNECTs
- 进去游戏,任意
/wxagame
开头的请求在Request
内即可看到session_id
- 安装后在命令行使用
-
在
config.js
内填入session_id
和想提交的分数score
(目前经验值是 10 - 1916 为安全数据) -
安装依赖:
$ npm install
- 生成数据并提交微信后台:
$ npm start
- shadow 模式,使用排行榜第一名好友回放数据构造游戏数据,在此基础上将其分数增加
SCORE_SHIFT
(默认为 -1)作为自身分数提交服务器。
$ npm run shadow
- 补充注释及简单说明
- 补充 session_id 抓取方法
- Web 管理页面
- 简单范围校验判断
目前样本数据包含 696 | 762 | 945 | 991 | 995 | 1042 | 1201 | 1867 分的历史数据(欢迎补充)。
dev 分支测试了 range(2 | 2020 | 4)
范围内的所有分数(测试时间 2018 年 02 月 26 日 21 点 00 分),基本上分数在落在样本数据 ±50 内的(当前逻辑会使用样本数据提交)都能正常上传。以下是测试通过的分数:
2 | 6 | 10 | 14 | 18 | 22 | 26 | 30 | 34 | 38 | 42 | 46 | 50 | 54 | 58 | 62 | 66 | 90 | 650 | 654 | 658 | 662 | 666 | 670 | 674 | 678 | 682 | 686 | 690 | 694 | 698 | 702 | 706 | 710 | 714 | 718 | 722 | 726 | 730 | 734 | 738 | 742 | 746 | 750 | 754 | 758 | 766 | 770 | 774 | 778 | 782 | 786 | 790 | 794 | 798 | 802 | 806 | 810 | 898 | 902 | 906 | 910 | 914 | 918 | 922 | 926 | 930 | 934 | 938 | 942 | 946 | 950 | 954 | 958 | 962 | 966 | 970 | 974 | 978 | 982 | 986 | 990 | 994 | 998 | 1002 | 1006 | 1010 | 1014 | 1018 | 1818 | 1822 | 1826 | 1830 | 1834 | 1838 | 1842 | 1846 | 1850 | 1854 | 1858 | 1818 | 1822 | 1826 | 1830 | 1834 | 1838 | 1842 | 1846 | 1850 | 1854 | 1858 | 1862 | 1866 | 1870 | 1874 | 1878 | 1882 | 1886 | 1890 | 1894 | 1898 | 1902 | 1906 | 1910 | 1914