昨天 V2EX 上的一篇通过抓包来获取微信跳一跳源码的文章走红,文章连接点击这里
我也在通过文章中的方式进行了抓包,但是并未探测到小游戏的下载连接,可能微信对此已经进行了修复。而且上文中提供的下载连接也显示为 404 的状态码。
虽然抓包未果,但是依然可以从本地将源码抽离出来,下面将介绍如何从 Android 手机里面找到微信下载的小游戏源码
需要注意的是必须是已经 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

程序就会在开发者工具里运行起来了

更正文中错误: 文中拷贝目录下的文件到 sdcard 中的命令,笔误写错,应该为
$ cp /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_1079392110_5.wxapkg /mnt/sdcard
重要提醒就是不建议普通用户将自己的安卓手机进行 root,本人 root 的也只是测试机,自用安卓手机 root 后有很高的安全风险,请慎重!!!
|  |      101gzlock      2018-01-03 01:11:10 +08:00 翻页~感谢楼主分享 建了个微信小游戏开发学习 QQ 群 117844722 目前合力将 three.js 修改成适应微信小游戏的版本,谢谢 | 
|  |      102conglovely      2018-01-03 08:23:23 +08:00 留名留名,万一火了能上新闻。 | 
|  |      103zzf2017      2018-01-03 08:55:14 +08:00 强无敌!留名 | 
|  |      1046diyipi      2018-01-03 09:12:52 +08:00 @zhgqthomas 我意思是要抓个源码我还得去买台安卓手机。。。 | 
|  |      105v2exe2v      2018-01-03 09:21:34 +08:00  1 | 
|      106midmiss      2018-01-03 09:33:55 +08:00 刘明 不会删吧 | 
|  |      107zhgqthomas OP  1 @6diyipi 也可以通过直接下载的方式 不过那个不知道微信会不会修改,但是本地直接拉取源代码 微信一般不容易解决 | 
|  |      108zhgqthomas OP @midmiss 本帖只是提供获取源码方法 并为流传源码 应该不会被和谐 | 
|  |      109v2exe2v      2018-01-03 10:27:25 +08:00 现在的版本现在已经混淆了,5 以前的都没有 | 
|  |      1106diyipi      2018-01-03 10:45:28 +08:00 | 
|  |      111liuxiaofengone      2018-01-03 11:23:00 +08:00 应该是混淆了,我看 JS 文件全是一大片~可读性就…… | 
|  |      112zhgqthomas OP  1 @6diyipi 那是因为你打开了一个小程序的项目并不是小游戏的项目 看一下前面的评论有解决方法 | 
|  |      113zhgqthomas OP @Bazhe 昨天研究了一下 request 合法域名列表的问题是可以解决的 具体请看这里 https://www.v2ex.com/t/419682 | 
|  |      114huangsw      2018-01-03 13:29:05 +08:00 洗摸杯 | 
|      115hegemonhe      2018-01-03 18:52:41 +08:00 手机没 root。谁能弄个腾讯自选股小程序的连接?谢谢咯 | 
|      116hegemonhe      2018-01-03 18:55:30 +08:00 求 腾讯自选股  appid | 
|  |      117tcpdump      2018-01-04 11:44:18 +08:00 @zhgqthomas 小程序都运行不起来的? | 
|      118lydspet      2018-01-04 16:40:58 +08:00 @v2exe2v 可以把 4.wxapkg 或者 5.wxapkg 发我一份吗,现在下载不到了,谢谢  lydspet@163 邮箱 | 
|      119simonsmh      2018-01-04 18:15:00 +08:00  1 @lydspet 我存了一份,v1-5 的 https://github.com/simonsmh/wechat-jump-source | 
|  |      120conglovely      2018-01-06 10:49:52 +08:00 我在 windows 上的开发者工具里没看到 game 这个选项,姿势不对? | 
|  |      121xx314327475      2018-01-06 12:51:56 +08:00 oneplus3t android8.0 通过这个命令挂载的 mount -o rw,remount /data | 
|      122chengxixi      2018-02-01 19:08:24 +08:00 mark |