美文网首页
微信跳一跳 高分技巧分享

微信跳一跳 高分技巧分享

作者: emoji2022 | 来源:发表于2017-12-30 22:54 被阅读0次

    微信 小游戏 堪称火爆,作为开发者,我感受到无比的自由。期待 2018 微信公开课带来更多的惊喜。


    74e09b3fbc324881bc74e2c39d81c4e0.jpeg

    这么火的游戏,在朋友圈没点分数怎么行

    20171230142116_206011c7878453426d5c5e4b059cc472_1.jpeg
    先说一个简单的上分技巧:

    1、当跳到井盖、便利店、魔方、音乐盒上时,等一下,会加分。
    2、还有就是跳到 方块 中心的位置,会加分,还会叠加。


    下面整理了知乎上一个大神的攻略:

    原理什么的很简单,就是设置代理对手机进行抓包,然后通过python在本地发送请求。
    另外,有一个教程是通过adb shell 截图测量方块距离,然后控制蓄力时间。我试了一下还是比较复杂,在此就不作分享了。

    一、环境配置:

    1、安卓手机
    2、ubuntu 16.04 + python3 + node.js
    3、安装python3依赖:

    $ sudo pip3 install pycrypto

    4、安装抓包工具(也可以使用 fiddler ):

    $ npm install -g whistle     # 安装到全局,待会用起来方便
    $ whistle -V          # 测试一下

    二、配置代理:

    $ whistle start         # 启动代理服务器

    2017-12-30 21-55-25屏幕截图.png

    然后在浏览器访问上面的地址,就可以看到操作界面。( 我电脑的ip地址是 192.168.2.130 )

    2017-12-30 21-59-06屏幕截图.png
    三、设置手机代理连接:

    手机和电脑需要处在同一局域网下,即连在一台路由器下。


    webwxgetmsgimg.jpeg
    四、设置https拦截:

    因为微信要求所有的小程序使用 https 加密传输数据,如果手机不安装https证书的话,代理端是无法抓取https包的:

    这时回到刚才电脑浏览器打开的抓包页面,从菜单上点击 https :

    2017-12-30 22-13-46屏幕截图.png

    会弹出二维码,手机扫码安装Ca证书,注意 截图 下方需要打钩的位置。

    但是,我尝试过扫码无法安装证书,需要点击 截图 左上角的下载链接,下载证书,通过usb数据线传输到手机,在手机上安装。

    五、测试抓包是否正常:

    还是回到电脑浏览器抓包页面,点击菜单上的Network,然后打开手机随便点点,当发现电脑屏幕有数据,这时基本就配置完成了环境:


    2017-12-30 22-30-34屏幕截图.png
    六、分析抓取的数据,提取session_id:

    做过网站的朋友应该对session不会陌生,小程序是一样的道理,每次打开游戏都是产生一个新的session_id,后面的py脚本只需要这一个字段:

    在微信上打开“ 跳一跳 ” 并开始游戏,然后注意抓取的数据,其中有这么一条:

    2017-12-30 22-38-23屏幕截图.png

    点击它,再看右侧面板,依次打开选项:

    2017-12-30 22-39-57屏幕截图.png

    复制session_id 字段对应的value值。

    七、编写python脚本,代码如下:
    # jump_game.py  文件
    import requests
    import json
    import time
    from Crypto.Cipher import AES
    import base64
    
    action_data = {
      "score": 10086,     # 1、表示想要的分数
      "times": 666,
      "game_data": "{}"
    }
    
    session_id = "H0u8RkVnm6m/Fezg=="   # 2、上一步复制的session_id
    
    aes_key = session_id[0:16]
    aes_iv  = aes_key
    
    cryptor = AES.new(aes_key, AES.MODE_CBC, aes_iv)
    
    str_action_data = json.dumps(action_data).encode("utf-8")
    print("json_str_action_data ", str_action_data)
    
    #Pkcs7
    length = 16 - (len(str_action_data) % 16)
    str_action_data += bytes([length])*length
    
    cipher_action_data = 
    base64.b64encode(cryptor.encrypt(str_action_data)).decode("utf-8")
    print("action_data ", cipher_action_data)
    
    post_data = {
     "base_req": {
     "session_id": session_id,
     "fast": 1,
    },
    "action_data": cipher_action_data
    }
    
    headers = {
    "charset": "utf-8",
    "Accept-Encoding": "gzip",
    "referer": "https://servicewechat.com/wx7c8d593b2c3a7703/3/page-frame.html",
    "content-type": "application/json",
    "User-Agent": "MicroMessenger/6.6.1.1200(0x26060130) NetType/WIFI Language/zh_CN",
    "Content-Length": "0",
    "Host": "mp.weixin.qq.com",
    "Connection": "Keep-Alive"
    }
    
    url = "https://mp.weixin.qq.com/wxagame/wxagame_settlement"
    
    
    response = requests.post(url, json=post_data, headers=headers)
    print(json.loads(response.text))
    

    这个脚本只有两个地方需要修改,非常简单。

    八、运行脚本:

    python3 jump_game.py

    success.png

    运行后得到这个结果,就可以刷新手机了,分数裆的一下起来了。
    再啰嗦一句,脚本只有一次运行有效,待重启小程序,重新抓取 session_id后就可以再次运行。

    相关文章

      网友评论

          本文标题:微信跳一跳 高分技巧分享

          本文链接:https://www.haomeiwen.com/subject/owyngxtx.html