如何获得微信小游戏跳一跳源码

2018-01-02 12:56:06 +08:00
 zhgqthomas

前言

昨天 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

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

参考

55062 次点击
所在节点    Android
126 条回复
itbeihe
2018-01-02 15:07:46 +08:00
厉害了
liuxu
2018-01-02 15:11:58 +08:00
这操作厉害了
killadm
2018-01-02 15:12:56 +08:00
有些手机其实不用 root,手机自带的备份功能就能把 data 下边的数据打包出来
fuwu1245
2018-01-02 15:16:03 +08:00
感觉可以用模拟器来代替一下实体机。。
silva
2018-01-02 15:18:33 +08:00
要是可以用模拟器就更方便了,专门找个测试机还是麻烦
Flobit
2018-01-02 15:20:20 +08:00
这个很厉害了。
3016
2018-01-02 15:26:52 +08:00
楼主厉害,洗摸杯
openbsd
2018-01-02 15:27:02 +08:00
竟然有如此好事,我喜欢的几个小程序是可以拿到源码了 ?
Deeer
2018-01-02 15:29:10 +08:00
为什么我没有 game 这个基础 ku
zhgqthomas
2018-01-02 15:30:22 +08:00
@fuwu1245 模拟器是跑不起来的,微信包内只有 arm 架构的 so 文件
zhgqthomas
2018-01-02 15:32:32 +08:00
@Deeer 看 35 楼的回复
zhgqthomas
2018-01-02 15:33:47 +08:00
@openbsd 对的,但是 js 文件都是压缩过,真想摸清楚程序的逻辑要经过断点调试
guoming0000
2018-01-02 15:38:36 +08:00
自从我 post 了 10 万分爽了几个小时,现在不管怎么玩都是 0 分了,谁告诉我怎么办哦,我擦嘞。。。
Deeer
2018-01-02 15:42:06 +08:00
有没有人遇到这个提示的
VM82:2 未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。
Norie
2018-01-02 15:45:01 +08:00
上 github
openbsd
2018-01-02 15:45:29 +08:00
@zhgqthomas
其实只想看看大神写的代码而已,想想还是算了
半天没找到可以 root 的设备
fuwu1245
2018-01-02 15:57:46 +08:00
找模拟器试了一下,可以打开到跳一跳的加载页面,但是加载不进去
到 LZ 说的 data 目录中可以获取到跳一跳的源码,然后拿之前的解包工具解包了下
得到的源码是压缩过的。。。
fhefh
2018-01-02 16:03:07 +08:00
多谢 mark
CloudnuY
2018-01-02 16:04:24 +08:00
低调低调…………
EricFuture
2018-01-02 16:05:14 +08:00
非常不错,顶一个!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX