如何成为微信小微信跳一跳的排行第一!
今天做了一次伪黑客,成果如下:

记录过程如下。
首先感谢 https://zhuanlan.zhihu.com/p/32473340 作者 及 @夏墨 老司机的指导。
步骤如下:
1,首先理解刚刚上面的文章里提供的是一个python脚本,构造微信小程序的请求,上传用户的游戏结果。我们要做的就是替换上述脚本中的session_id(用户微信身份的唯一ID)和分数,以及让这个Python脚本成功的运行。
2,取seesion_id要做的事就是抓手机上Https流量包。这个搞起来还是比如复杂,基本上有以下步骤:
3,找到session_id后成功运行这个脚本也有点麻烦。步骤如下:
哈哈,就这样,还是非常有意思了。有疑问留言哈!

记录过程如下。
首先感谢 https://zhuanlan.zhihu.com/p/32473340 作者 及 @夏墨 老司机的指导。
步骤如下:
1,首先理解刚刚上面的文章里提供的是一个python脚本,构造微信小程序的请求,上传用户的游戏结果。我们要做的就是替换上述脚本中的session_id(用户微信身份的唯一ID)和分数,以及让这个Python脚本成功的运行。
2,取seesion_id要做的事就是抓手机上Https流量包。这个搞起来还是比如复杂,基本上有以下步骤:
- 需要你的手机及电脑一台,确保他们处于同个局域网中,相信周末大家在家的话都满足这个条件;
- 手机上不需要安装任何特殊的软件,电脑上需要安装抓包工具软件charles,这工具还起一个作用就是当手机的代理服务器,这样就能获取访问这个服务器的流量了。在电脑上装好charles后打开这软件。注意这软件不购买的话,一会儿会自动关闭,不过够用了。看它关闭了,再打开就是了;
- 手机连上家里的wifi后,设置一下代理(手动模式),服务器填自已电脑的IP,就是168.192.1.xxx这样的,自己找教程,这个相对容易;代理端口填8888(charles默认的);
- 为手机安装安全证书,用手机访问http://www.charlesproxy.com/getssl/ 会让你下载一个证书,安装就行。我用的小米手机,由于安全原因,不允许直接安装,你得用非原生的浏览器来访问这个网址然后安装。这一步有些人会遇到麻烦,但能解决;
- 然后把微信从后台杀死,然后开启,然后点开小程序跳一跳,然后程序就会获取初始化信息,这时候用charles抓包 注意在Proxy菜单中选 ssl proxying settings中加一个白名单:mp.weixin.qq.com 。好了,注意看左侧的抓包结果在mp.weixin.qq.com->wxgame->wxgame_init请求详情中有session_id,找出来,是一串很长的无序的字符。用这个替换到最开始的python脚本中。
3,找到session_id后成功运行这个脚本也有点麻烦。步骤如下:
- 安装好原生的Python2.7(3的话我没有实验,我自己有2.7版本);
- 然后把你替换seesion_id和分数后的内容保存为 tiao.py ;
- 然后打开dos命令窗口, 运行命令: python.exe tiao.py 一般情况下会报错,因为这个脚本要求的各种包你可能没有。
- 使用pip安装了 requests, pycrypto(这个包非常狗血,你得先安装一个VCForPython27.msi,然后去安装目录 c:/python27/Lib/site-packages/crypto 把crypto改成Crypto, 这样才不会报错,这也许就是我不喜欢python的原因了,太tm弱智了)
- 然后可能还会遇到下面的问题:
- line 27, in <module> cipher_action_data = base64.b64encode(cryptor.encrypt(str File "C:\Python27\lib\site-packages\Crypto\Cipher\blockalgo return self._cipher.encrypt(plaintext)ValueError: Input strings must be a multiple of 16 in length
- 解决办法: 25行: +=chr(length)*length 这个是老司机告诉我的,我直接用了,原因还没有细究。
- 最后再运行一下,看到类似以下的结果表示更新OK了:
- ('json_str_action_data ', '{"score": 10087, "game_data": "{}", "times": 666}')('action_data ', u'IufEkz9jXrSXpytddsfsdfsdfsdfsdfQAClxuAoYsF9MeLU6BdarFJ3KwlXyNYVHqqMuCbDccBS0Q=='){u'base_resp': {u'errcode': 0, u'ts': u'1514633282205'}}
哈哈,就这样,还是非常有意思了。有疑问留言哈!