原文:https://www.v2ex.com/t/419352?p=1
前言
昨天 V2EX 上的一篇通过抓包来获取微信跳一跳源码的文章走红,文章连接点击这里
我也在通过文章中的方式进行了抓包,但是并未探测到小游戏的下载连接,可能微信对此已经进行了修复。而且上文中提供的下载连接也显示为 404 的状态码。
虽然抓包未果,但是依然可以从本地将源码抽离出来,下面将介绍如何从 Android 手机里面找到微信下载的小游戏源码
准备工作
- 一部已经 root 的 Android 手机
- 安装微信 6.6.1 版本的 apk
- 电脑上已安装 Android SDK 并可以使用 adb 命令
需要注意的是必须是已经 root 了的 Android 手机,否则将没有权限访问对应手机的系统文件夹
通过 USB 将手机连接到电脑上,然后运行以下命令
$ adb devices
如果显示了一下信息
List of devices attached
71MBBL6228EU device
说明手机已经连接到电脑上,如显示未找到 adb
命令,则说明 Android SDK 安装错误或 adb
未添加到电脑 path
中,请自行上网进行相应查阅
手机连接电脑成功后,运行一下命令
$ adb shell
$ su
终端出类似 root@{手机型号}
前缀,说明已经进入到 root
模式下
$ cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
{User} 为当年用户的用户名,类似于 1ed**********c514a18
然后当前目录就是微信用于存放小程序和小游戏下载包的位置
$ ls
_-791877121_3.wxapkg
_1079392110_5.wxapkg
_1079392110_5.wxapkg_xdir
_1123949441_92.wxapkg
_576754010_1.wxapkg
以上是我的微信中所下载过的小程序和小游戏源码
因为 /data
目录为系统级目录,无法直接将其进行复制,需要重新挂载为可操作模式
$ mount -o remount,rw /data
此时就可以将当前目录下的文件拷贝到 sdcard 中
$ cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_1079392110_5.wxapkg /mnt/sdcard
然后将 _1079392110_5.wxapkg
文件拷贝到电脑里,通过该脚本进行解压后,即为其源码
编译源码
通过微信小游戏开发工具新建一个空白的小程序或者小游戏的项目,主要不要选择快速启动模板
然后把刚才解压出来的源代码复制到刚刚创建的项目目录中,开发工具会提示编译错误,这时只要在项目中新建一个 game.json
文件,并在文件里写入以下代码
{
"deviceOrientation" : "portrait"
}
然后将开发工具的调试基础库改为 game
程序就会在开发者工具里运行起来了
参考
- 微信跳一跳 可以直接更改分数,POST 请求没有校验
- 微信小程序源码阅读笔记 1
- 微信小程序漏洞:可下载任意微信小游戏源代码
- wxapkg 解压脚本
附录:
微信跳一跳源码:https://github.com/simonsmh/wechat-jump-source