只需两步获取任何⼩程序源码
快速地获取⼀个⼩程序源码的⽅式记录下来。
简单聊⼀下xxxxx.wxapkg
先来想想⼀个很简单的问题,⼩程序的源⽂件存放在哪?
当然是在的服务器上。
但是在服务器上,普通⽤户想要获取到,肯定是⼗分困难的,有没有别的办法呢?
简单思考⼀下我们使⽤⼩程序的场景就会明⽩,当我们点开⼀个⼩程序的时候,其实是已经将它的从服务器上下载到了⼿机,然后再来运⾏的。
所以,虽然我们没能⼒从服务器上获取到,但是我们应该可以从⼿机本地到到已经下载过的⼩程序源⽂件
那么如何才能在⼿机⾥到⼩程序的源⽂件包呢?
这⾥只以安卓⼿机为例,毕竟穷逼不曾拥有过苹果⼿机
具体⽬录位置直接给出:
/data/t.mm/MicroMsg/{{⼀串32位的16进制字符串⽂件夹}}/appbrand/pkg/
在这个⽬录下,会发现⼀些 xxxxxxx.wxapkg 类型的⽂件,这些就是⼩程序的包
⼩程序的格式就是:.wxapkg
.wxapkg是⼀个⼆进制⽂件,有其⾃⼰的⼀套结构。
关于.wxapkg的详细内容可以参考lrdcq⼤神的博⽂:⼩程序源码阅读笔记
但是这⾥有个坑,想要进⼊到上⾯这个⽬录的话,⽤⼿机⾃带的⽂件管理器肯定是不⾏的,安卓或者iPhone都要要⽤到第三⽅的⽂件管理器,⽐如:RE⽂件管理器,并且安卓需要取得root权限,⽽苹果⼿机肯定是要越狱的,且iphone的越狱难度>>安卓获取root,不管越狱还是root,这都太费劲,当然有能⼒的同学可以直接从⼿机上来操作,但是这⾥不推荐从真机上获取。
准备材料
node.js运⾏环境
如果没有安装nodejs,请先安装⼀下
下载地址:/en/
反编译的脚本
这⾥提供⼀个Github上qwerty472123⼤神写的node.js版本的,当然也有其它版本的,这⾥我只是简单地⽤node.js版本举例
地址:github/qwerty47212…
安卓模拟器(要求⾃带root权限)
我使⽤的是夜神模拟器,⽤来获取⼩程序源⽂件
下载地址:shen/cn/download…
详细步骤:
使⽤安卓模拟器获取到.wxapkg⽂件
不⽤越狱,不⽤root,使⽤电脑端的安卓模拟器来获取是⼀个⾮常简单快捷且万能的获取⽅式,具体步骤如下:
打开安装好的安卓模拟器,并在模拟器中安装QQ、、RE管理器
QQ、在模拟器⾃带的应⽤商店⾥搜索下载安装即可
RE管理器的下载地址:pan.baidu/s/1PPBx08rN…
下载好后直接拖拽进打开的模拟器窗⼝就会⾃动安装
设置⼀下模拟器
小程序开发一键生成平台源码以我个⼈认为⽐较好⽤的夜神模拟器举例
⾸先到模拟器内部设置超级⽤户权限
这些操作的⽬的都是为了能让RE管理器顺利的获取到ROOT权限
接下来在模拟器⾥打开,然后在中运⾏你想要获取的下程序(这其实是让把⼩程序的源⽂件包从服务器下载到了本地了)就以我说的这款青桔单车的⼩程序举例(希望滴滴的⼤神不会想打死我~)
在模拟器中运⾏⼀下后,直接切回模拟器桌⾯运⾏RE浏览器来到⽬录
/data/t.mm/MicroMsg/{{⼀串32位的16进制字符串⽂件夹}}/appbrand/pkg/
就抵达了⽬的⽂件夹
你会看到发现⾥⾯的⼀些.wxapkg后缀的⽂件,就是它们没错啦,可以根据使⽤的时间来判断那个是你刚才从服务器下载过来的
⼀般⼩程序的⽂件不会太⼤,可以结合时间来判断,长按压缩所选⽂件,然后再将压缩好的包通过QQ发送到我的电脑
如果不进⾏压缩的话,是⽆法将这个⽂件通过QQ来发送的
所以QQ的这个功能可以让我们很⽅便的拿到源⽂件,⽽不必到电脑⽬录去模拟器的⽂件⽬录。
解压。这样⼏步简单操作,就成功拿到了⼩程序的源⽂件了。
使⽤反编译脚本解包 wxapkg
到这⾥你应该已经将反编译脚本从github下载或者 clone 到本地某个⽬录
打开nodejs命令窗⼝
cd 到你clone或者下载好的反编译脚本⽬录下
在node命令窗⼝中依次安装如下依赖: npm install esprimanpm install css-treenpm install cssbeautifynpm install vm2npm install uglify-es
安装好依赖之后,就是最后⼀步了,反编译 .wxapkg ⽂件
在当前⽬录下输⼊ node wuWxapkg.js [-d] &> //files 就是你想要反编译的⽂件名例如:我有⼀个需要反编译的⽂件
_163200311_32.wxapkg 已经解压到了D盘根⽬录下,那么就输出命令 node .wuWxapkg.js D:\_163200311_32.wxapkg
回车运⾏
反编译脚本就能⼀步将.wxapkg ⽂件还原为开发者⼯具能够运⾏的源⽂件,⽬录地址和你反编译
的⽂件地址是⼀样的然后在开发者⼯具新增项⽬即可打开
运⾏成功,源码获取完成
真的只需要两步
⾄此我们就通过⾮常简单的⽅式获取到了⼀个想要的⼩程序源⽂件,并对齐进⾏了反编译还原以后想要再反编译其他的⼩程序,⾮常快速,只需要两步即可完成
使⽤模拟器到⼩程序.wxapkg⽂件
使⽤nodejs 反编译脚本将.wxapkg⽂件反编译
使⽤此⽅法,绝⼤部分的⼩程序都能正常反编译出来,但是也会有⼀些特殊的情况,具体可以查看qwerty472123⼤神的readme⽂件
写在后⾯的话
.apk 之类的⽂件反编译⾮常困难,⽽⼩程序竟可以如此轻松随意地被获取到源码,根源在于⼩程序的开发团队并没有对⼩程序的执⾏⽂件进⾏有效的保护,也就是加密,所以我们才能使⽤别⼈写好的脚本直接进⾏反编译,其过程类似于解压。
实际上,⼩程序只是很简单的将图⽚、js和json⽂件压在⼀起,⽽压制的过程就是Wxml -> Html、 Wxml -> JS、Wxss -> Css,转换后⽂件⼆进制格式跟后缀名为wx⼆进制格式完全⼀致。
上线的源代码能如此简单的被获取到,不得不说⼩程序的源码安全存在很⼤的隐患,这⼀点很多开发者应该也知道,所以发现有些⼩程序会将重要的js逻辑代码柔在⼀个js⽂件中,这样,即使被获取了源码,也不是很容易读懂,但是任然避免不了被窥视的问题。⼩程序作为⽣态内的新⽣⼒量,不仅被官⽅,也被很多开发者和内容创业者寄予厚望,处于对代码的安全性的考虑,这个漏洞迟早有⼀天会被修复(封掉)的。
所以这种这⾥介绍的获取⼩程序源码的⽅法,应该是不会太长久的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论