主要观点:
小程序运行时,会先下载资源,然后运行。 收到小程序的资源包后,使用反编译程序对Momo的压缩包进行反编译,恢复大部分代码。
截至录制日,该方法尚未被Momo修复。
1. 获取源码包wxapkg
在打开小程序图标的过程中,陌陌已经将其源文件从远程服务器下载到手机上。 原则上,源文件已经存在于手机本地,任何具有root权限或越狱的人都可以访问它。 如果没有root权限,可以使用Android模拟器。推荐使用叶神,自带root,附上地址:下载地址
启动模拟器后,安装Momo和RE Manager(用于访问源文件)。然后从设置中打开:超级用户=>右上角菜单设置=>手动响应=>允许
然后进入Momomc反编译源码,打开小程序,运行一会mc反编译源码,使用RE管理器找到位置文件
根目录 /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/
{User} 是一个由 16 个补码字符组成的字符串
此类文件压缩后,通过发送给陌陌好友等方式进行分享。如果不经过压缩步骤,会提示资源获取失败。
Momo在压缩和打包时会遵循一定的规则。 该包基本上是一个 wxapkg 文件,包括一些依赖项。 wxapkg是Momo自带的补码文件,点此查看专家解析
2. 反编译
收到wxapkg文件后,收到后就可以反编译了。
前提是node环境,克隆git资源,安装到其目录下依赖npminstall
或者
npm install esprima npm install css-tree npm install cssbeautify npm install vm2 npm install uglify-es npm install js-beautify
安装完成后,执行命令行,nodewuWxapkg.js[-d]
[-d]为wxapkg的资源位置,如:
nodewuWxapkg.jsd:wxappresource_1123949441_304.wxapkg
执行后可以反编译程序源码,编译后的文件地址与wxapkg资源地址目录相同
参考:两步快速获取小程序源码
或者使用TBS抓取已经上线的陌陌小程序页面(未经测试)