昨天 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 后有很高的安全风险,请慎重!!!
1
gaobh 2018-01-02 13:00:37 +08:00 via iPhone
要上新闻,占位
|
2
lekai63 2018-01-02 13:02:25 +08:00 via iPhone
点赞
|
3
littleylv 2018-01-02 13:03:55 +08:00
厉害了
|
4
rootsir 2018-01-02 13:04:58 +08:00
赞 mark
|
6
voocel 2018-01-02 13:15:10 +08:00 via Android
火前留名
|
7
dobelee 2018-01-02 13:21:24 +08:00 via Android
火鉗劉明。
|
8
YvesX 2018-01-02 13:23:00 +08:00
这个帖有潜力
|
9
learnshare 2018-01-02 13:30:23 +08:00
小程序离死亡又近了一步
|
10
dawnven 2018-01-02 13:34:19 +08:00 via Android
可怕了
|
11
kingcos 2018-01-02 13:35:43 +08:00 via iPhone
666,res 文件夹下面是游戏里用到的资源文件吗?
|
12
adian 2018-01-02 13:37:00 +08:00
emmm
|
13
diydry 2018-01-02 13:37:06 +08:00
厉害。。
|
14
dd0754 2018-01-02 13:41:12 +08:00
66666
|
15
zhgqthomas OP @kingcos 恩 是的,但是微信对小游戏有包大小的限制在 4M 左右,所以 res 文件夹下只放一些启动需要的资源文件,进入后会从网络下载一部分
|
16
ray1504 2018-01-02 13:43:02 +08:00
厉害了~~~火钳刘明
|
17
6diyipi 2018-01-02 13:44:30 +08:00
安卓手机这个要求和困难
|
18
zhgqthomas OP @6diyipi 还可以吧,像小米和魅族等国内手机厂商,root 很简单的
|
19
jason19659 2018-01-02 13:47:09 +08:00
可以刷分之后马上就没人玩了
|
20
wangmm 2018-01-02 13:49:46 +08:00
火钳刘明
|
21
ycmchong 2018-01-02 13:52:27 +08:00
火钳刘明
|
22
bravecoder 2018-01-02 13:53:42 +08:00 1
楼主整理总结的不错,刷分其实只是一个噱头,有意思的点最后还是需要落在技术上。
|
23
zhgqthomas OP @bravecoder 也要多感谢你文章的指引
|
24
flowerwrong 2018-01-02 14:00:50 +08:00
没加密。。。。。。。
|
25
qsnow6 2018-01-02 14:02:09 +08:00
`未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。`
入口怎么配置 |
26
zhgqthomas OP @qsnow6 你解析的是小程序的文件吧,那就自己创建个 app.json 然后添加点配置信息
|
28
tcpdump 2018-01-02 14:13:03 +08:00
能不能 HONG BAO 帮忙弄个微信小程序源码?
|
29
zhgqthomas OP @macleek 恩 对的,我只是将自己实践的过程进行了整理,方法并非原创
|
30
zhgqthomas OP @tcpdump 你可以自己先实践一下,如果哪里遇到了问题,可以交流解决
|
31
tcpdump 2018-01-02 14:17:34 +08:00
@zhgqthomas 硬件限制,没安卓 ROOT 机器
|
32
zhgqthomas OP @tcpdump 不好意思,流传别人开发的源码可能不太好,这个还需要你自己想想办法,技术实践上可以进行交流
|
33
tcpdump 2018-01-02 14:27:18 +08:00
@zhgqthomas 好的,谢谢。
|
34
qsnow6 2018-01-02 14:30:53 +08:00
@zhgqthomas #26
调试基础库里没有 game 是版本的问题? |
35
zhgqthomas OP @qsnow6 你可能用的还是旧的微信开发工具,文中有小游戏版本的微信开发工具链接
|
36
qsnow6 2018-01-02 14:38:35 +08:00
@zhgqthomas #35 有下载页面吗?需要下载 windows 版的
|
37
zhgqthomas OP |
38
luanjia 2018-01-02 14:44:45 +08:00 1
如果已经 root 了的手机的话,直接使用 RE 管理器( Root Explore )到相应目录把小程序源代码复制出来更方便一些,我就是这么干的,多谢楼主的总结~
|
39
xingstar 2018-01-02 14:51:12 +08:00
666 啊,很赞
|
40
cnqncom 2018-01-02 14:51:19 +08:00 via Android
|
41
itbeihe 2018-01-02 15:07:46 +08:00
厉害了
|
42
liuxu 2018-01-02 15:11:58 +08:00
这操作厉害了
|
43
killadm 2018-01-02 15:12:56 +08:00
有些手机其实不用 root,手机自带的备份功能就能把 data 下边的数据打包出来
|
44
fuwu1245 2018-01-02 15:16:03 +08:00
感觉可以用模拟器来代替一下实体机。。
|
45
silva 2018-01-02 15:18:33 +08:00
要是可以用模拟器就更方便了,专门找个测试机还是麻烦
|
46
Flobit 2018-01-02 15:20:20 +08:00
这个很厉害了。
|
47
3016 2018-01-02 15:26:52 +08:00
楼主厉害,洗摸杯
|
48
openbsd 2018-01-02 15:27:02 +08:00
竟然有如此好事,我喜欢的几个小程序是可以拿到源码了 ?
|
49
Deeer 2018-01-02 15:29:10 +08:00
为什么我没有 game 这个基础 ku
|
50
zhgqthomas OP @fuwu1245 模拟器是跑不起来的,微信包内只有 arm 架构的 so 文件
|
51
zhgqthomas OP @Deeer 看 35 楼的回复
|
52
zhgqthomas OP @openbsd 对的,但是 js 文件都是压缩过,真想摸清楚程序的逻辑要经过断点调试
|
53
guoming0000 2018-01-02 15:38:36 +08:00
自从我 post 了 10 万分爽了几个小时,现在不管怎么玩都是 0 分了,谁告诉我怎么办哦,我擦嘞。。。
|
54
Deeer 2018-01-02 15:42:06 +08:00
有没有人遇到这个提示的
VM82:2 未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。 |
55
Norie 2018-01-02 15:45:01 +08:00
上 github
|
56
openbsd 2018-01-02 15:45:29 +08:00
|
57
fuwu1245 2018-01-02 15:57:46 +08:00
找模拟器试了一下,可以打开到跳一跳的加载页面,但是加载不进去
到 LZ 说的 data 目录中可以获取到跳一跳的源码,然后拿之前的解包工具解包了下 得到的源码是压缩过的。。。 |
58
fhefh 2018-01-02 16:03:07 +08:00
多谢 mark
|
59
CloudnuY 2018-01-02 16:04:24 +08:00
低调低调…………
|
60
EricFuture 2018-01-02 16:05:14 +08:00
非常不错,顶一个!
|
61
SourceMan 2018-01-02 16:06:11 +08:00
确定是源码吗?开发过小程序的应该都知道有一个“压缩后上传”的选项
哎,2 个帖都有“源码”关键字,我好想说标题党 |
63
vjnjc 2018-01-02 16:15:47 +08:00
楼主可以把跳一跳删掉,改为 [如何获得微信小程序源码]
|
64
qsnow6 2018-01-02 16:39:26 +08:00
不过解压出来的是 html 文件,并不是 wxhtml
|
65
ahaxzh 2018-01-02 16:44:19 +08:00
|
66
kyrkwode 2018-01-02 16:44:34 +08:00
有没有兄 dei 把源码打包一份放到网盘让我学习学习。
|
67
ieliwb 2018-01-02 16:45:43 +08:00
厉害,小程序都被你们玩坏了
|
68
qsnow6 2018-01-02 16:51:59 +08:00
为啥编译不可能呢 |
70
a6377508 2018-01-02 16:55:25 +08:00
厉害
|
71
ACool 2018-01-02 16:56:47 +08:00
这波操作很 6
|
72
zhgqthomas OP @qsnow6 你这是建立了个项目,在创建的时候需要点击的是小游戏,小游戏是没有 app.json 一说的,只需要 game.json
|
73
Alex6 2018-01-02 17:06:04 +08:00
这一波,都扒出来了,玩的 666
|
74
zhongdong 2018-01-02 17:06:36 +08:00
厉害了
|
75
MiaSanMia 2018-01-02 17:08:45 +08:00 via Android
厉害
|
76
lneoi 2018-01-02 17:09:05 +08:00
厉害了
|
77
tcpdump 2018-01-02 17:13:07 +08:00
page-frame.html 这个,怎么调试?
|
78
qsnow6 2018-01-02 17:14:42 +08:00 4
|
80
sobigfish 2018-01-02 17:15:28 +08:00
总想闹个大新闻,那个不算是源码,是压缩过的(类似网站 webpack 过的 js ) 你拿到又能怎样?
|
83
mimiga 2018-01-02 17:43:59 +08:00
厉害了我的骑摩托马斯哥
|
84
airtayork 2018-01-02 17:57:00 +08:00
解压之后的代码是混淆过的,没法看,是我操作的太晚了吗?
|
85
facetest 2018-01-02 18:01:28 +08:00 via Android
压缩包加个密就行了
|
86
zhgqthomas OP @airtayork 解压完的代码肯定是经过压缩的,但是格式化之后逻辑还是可以整清楚的
![]( http://upload-images.jianshu.io/upload_images/854027-97d29112660deb03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 通过调试工具可以找到最终提交分数的地方 |
87
artandlol 2018-01-02 18:14:35 +08:00
windows 最新开发工具版本
hts://dldir1.qq.com/WechatWebDev/1.0.0/201712280/fix/wechat_devtools_1.02.1712280_x64.exe 官网上挂的还是 1205 没有 game 的 |
88
zhgqthomas OP @mimiga 尼玛
|
89
qiayue 2018-01-02 18:17:13 +08:00
小程序的包是没办法直接运行的,小游戏的可以
|
90
yangeren 2018-01-02 18:55:30 +08:00
厉害厉害
|
91
JohnTsemin 2018-01-02 19:55:31 +08:00 via Android
跳一跳:我到底犯了什么错?你们要这样搞我?
|
92
iwtbauh 2018-01-02 20:26:25 +08:00 via Android
/data 本来就是 rw 的,不需要重新挂载
|
93
Bazhe 2018-01-02 20:43:26 +08:00
https://mp.weixin.qq.com 不在以下 request 合法域名列表中
怎么解决? |
94
JiangVoid 2018-01-02 21:20:24 +08:00 via Android
或许可以试一试。
|
95
zhgqthomas OP @Bazhe 那个解决不了 因为小游戏还没有开放注册,开放注册之后有了 app id 就可以设置 request 合法域名列表了
|
96
Bazhe 2018-01-02 21:58:55 +08:00
@zhgqthomas 那你是怎么运行起来的小游戏的,我的没有开始游戏的按钮。。。。
|
97
fuwu1245 2018-01-02 22:08:44 +08:00
|
98
zhgqthomas OP @Bazhe 游戏本身是可以正常运行的 只是所有的网络请求不能跑通 你可以尝试把开发工具关了重新进入项目试试 现在开发工具还不是特别稳定 我就经常会卡死
|
99
zhgqthomas OP @fuwu1245 这个看 log 是找不对相应的函数声明 没有源码我也不知道问题在哪
|
100
msl12 2018-01-03 00:11:12 +08:00
留名
|