xxxxx.wxapkg
先來想想一個(gè)很簡單的問題,小程序的源文件存放在哪?
服務(wù)器
上獲取到,但是我們應(yīng)該可以從 手機(jī)本地
找到到已經(jīng)下載過的小程序源文件/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進(jìn)制字符串文件夾}}/appbrand/pkg/
xxxxxxx.wxapkg
類型的文件,這些就是微信小程序的包qwerty472123
大神寫的node.js版本的,當(dāng)然也有其它版本的,這里我只是簡單地用node.js版本舉例夜神模擬器
,用來獲取小程序源文件.wxapkg
安卓
或者 iPhone
都要要用到第三方的文件管理器,比如: RE文件管理器
,并且安卓需要取得root權(quán)限,而蘋果手機(jī)肯定是要越獄的,且 iphone的越獄難度>>安卓獲取root ,不管越獄還是root,這都太費(fèi)勁,當(dāng)然有能力的同學(xué)可以直接從手機(jī)上來操作,但是這里 不推薦從真機(jī)上獲取
。不用越獄,不用root,使用電腦端的 安卓模擬器 來獲取是一個(gè) 非常簡單快捷且萬能的 獲取方式,具體步驟如下:
QQ
、 微信
、 RE管理器
QQ
、 微信
在模擬器自帶的應(yīng)用商店里搜索下載安裝即可RE管理器
的下載地址: pan.baidu.com/s/1PPBx08rN…夜神模擬器
舉例
RE管理器
順利的獲取到ROOT權(quán)限/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進(jìn)制字符串文件夾}}/appbrand/pkg/
我的電腦
_163200311_32.wxapkg
已經(jīng)解壓到了D盤根目錄下,那么就輸出命令
然后在微信開發(fā)者工具新增項(xiàng)目即可打開
至此我們就通過非常簡單的方式獲取到了一個(gè)想要的小程序源文件,并對齊進(jìn)行了反編譯還原 以后想要再反編譯其他的小程序,非??焖伲?nbsp;真的只需要兩步
使用此方法,絕大部分的小程序都能正常反編譯出來,但是也會有一些特殊的情況,具體可以查看 qwerty472123
大神的readme文件
.apk 之類的文件反編譯非常困難,而小程序竟可以如此輕松隨意地被獲取到源碼,根源在于小程序的開發(fā)團(tuán)隊(duì)并沒有對小程序的執(zhí)行文件進(jìn)行有效的保護(hù),也就是加密,所以我們才能使用別人寫好的腳本直接進(jìn)行反編譯,其過程類似于解壓。
實(shí)際上,小程序只是很簡單的將圖片、js和json文件壓在一起,而壓制的過程就是Wxml -> Html、 Wxml -> JS、Wxss -> Css,轉(zhuǎn)換后文件二進(jìn)制格式跟后綴名為wx二進(jìn)制格式完全一致。
上線的源代碼能如此簡單的被獲取到,不得不說小程序的源碼安全存在很大的隱患,這一點(diǎn)很多開發(fā)者應(yīng)該也知道,所以發(fā)現(xiàn)有些小程序會將重要的js邏輯代碼柔在一個(gè)js文件中,這樣,即使被獲取了源碼,也不是很容易讀懂,但是任然避免不了被窺視的問題。 小程序作為微信生態(tài)內(nèi)的新生力量,不僅被官方,也被很多開發(fā)者和內(nèi)容創(chuàng)業(yè)者寄予厚望,處于對代碼的安全性的考慮,這個(gè)漏洞遲早有一天會被 修復(fù)(封掉) 的。
所以這種這里介紹的獲取小程序源碼的方法,應(yīng)該是不會太長久的。