微信跳一跳 可以直接更改分数, POST 请求没有校验

这两天逛 v 站出现了一众微信跳一跳 'AI',已经被刷屏了……

大致思路都是通过计算两点距离,模拟点击起跳来方式来实现的,

可是作为不越狱的苹果党,手里又没安卓机,看着被刷屏刷榜,非常不爽啊

想着抓个包看看能不能模拟下网络请求刷分,结果 ……

发现可以直接伪造 POST 请求刷分

https://gist.github.com/feix/6dd1f62a54c5efa10f1e1c24f8efc417

目前比较麻烦的是 

- [ ] 需要先抓包拿到 sesseion_id 
- [ ] 分数最高只能设置为 999,还未找到为啥 🐶 

### 如何抓包: 

1. 下载最新 [charlesproxy]( https://www.charlesproxy.com/download/
2. 启动 charlesproxy 
3. 配置代理: 设置 > 无线局域网 > 配置代理 > 手动 > IP:电脑 ip,端口:8888 
4. 导入 https 证书: 浏览器访问 http://chls.pro/ssl 下载安装证书 
5. 启动跳一跳小程序 
6. 去 charlesproxy 里查看抓到的请求, https://servicewechat.com/ 域名的请求,请求体里就包含 session_id 

### 突破 999 的分数限制 

Just for fun ! 


另外附上两个个有意思的点: 

### 如何下载小程序源代码 
```bash 
wget http://123.125.9.32/resstatic.servicewechat.com/weapp/release/{appid}/{version_num}.wxapkg 
``` 

{appid} 为小程序码, {version_num} 为 版本号,示例: 
http://123.125.9.32/resstatic.servicewechat.com/weapp/release/wx7c8d593b2c3a7703/3.wxapkg 

### 如何解析 wxapkg 文件: 

更正写错的地方

感兴趣的可以把 小程序 的代码下下来,解包在本地运行玩玩

  1. 用 微信开发者工具新建小游戏,选择空的项目目录,game4fun
  2. wget http://123.125.9.32/resstatic.servicewechat.com/weapp/release/wx7c8d593b2c3a7703/4.wxapkg
  3. python2 unwxapkg.py 4.wxapkg
  4. cp 4.wxapkg_dir/* game4fun/
  5. 重启微信开发者工具后就可以在电脑上运行 跳一跳

game.js 文件可以用 chrome 调整后再看,逻辑其实蛮清晰的

posted @ 2018-05-24 16:57  h2z  阅读(710)  评论(0编辑  收藏  举报