如何使用Charles抓包并且刷跳一跳分数

最近比较火爆的微信小游戏 跳一跳 据说存在漏洞可以通过接口直接发送成绩 本次就使用 Charles 抓取微信的数据

下载安装

配置代理

  • 打开 Charles
  • 依次打开 Proxy => Proxy Setting
  • 修改 HTTP Proxy 的端口为本地未占用的 例如 9999
  • 打开手机的 WIFI 确保和电脑处于同一网段
  • 配置代理 以 iPhone6P IOS11 为例
    • 设置 => 无线局域网
    • 选择已连接的网络
    • 滑到底 HTTP 代理 => 配置代理
    • 选择 手动
    • 服务器填入电脑的IP地址
    • 端口填入 Charles 配置的端口

配置 HTTPS 代理

  • 默认情况下 HTTPS 的请求是加密的 也就是显示红色的 <UNKNOWN>
  • 依次打开 Help => SSL Proxying => Install Charles Root Certificate on a Mobile Device or Remote Browser
  • 这个时候 Charles 会有一个提示 手机根据提示的网址打开 Charles 4.2.1 提示的网址为 chls.pro/ssl
  • Safari 打开网址后会提示安装描述文件 点击 允许
  • 进入安装描述文件的界面 点击 安装 然后输入密码 部分系统还会弹出一个警告 继续点 安装
    • 如果过你的系统版本大于 IOS9 则需要进行下列操作
    • 依次打开 设置 => 通用 => 关于本机(滑到底) => 证书信任设置
    • 找到 Charles Proxy CA xxxxxx 的一行 打开后面的按钮 弹出警告 点击继续
  • 依次打开 Proxy => SSL Proxying Setting
    • 勾上 Enable SSL Proxying
    • 点击 ADD
    • HOST 填写 *
    • PORT 填写 443
    • 点击 OK

获取微信 SessionID

  • 按下 Ctrl + 退格 删除历史记录
  • 打开微信小游戏 跳一跳
  • 可以找到 https://mp.weixin.qq.com/wxagame/wxagame_init 的请求

    • 打开请求
    • 右侧选择 Contents 下面选择 JSON Text
    • 可以看到类似如下内容

      1
      2
      3
      4
      5
      6
      7
      {
      "base_req": {
      "session_id": "xxxxxxxxxxxxxx",
      "fast": 1
      },
      "version": 9
      }
    • 复制 session_idversion 并且保存

执行刷分脚本 方法1

  • 安装 Node 环境 (自己百度安装)
  • 微信刷分脚本 下载代码 保存为 t1t.js
  • 在 脚本目录执行 npm install crypto-js request-promise request
  • 替换脚本内的 session_idversion (约65-70行左右)
  • 修改 score 为你要的分数 高于 100000 之后排行榜也会显示 100000
  • 执行脚本 npm t1t.js
  • 再次打开跳一跳 可以看到 分数已经刷上去了

简易执行刷分 方法2

  • 打开网址 https://track.yumc.pw/t1t
  • 填写抓到的 session_idversion 并且写上自己需要的分数 点击执行即可
  • 本人承诺系统不会保留任何相关数据 如果你不放心 可以退出微信重新登陆 SessionID 会刷新的