網(wǎng)上有很多文章都介紹了如何獲取源碼??偨Y(jié)下就是兩種方法,一個(gè)是用真機(jī)獲取,不過(guò)需要獲取手機(jī)的root權(quán)限,再反編譯獲取的小程序的wxapkg包,感覺(jué)這個(gè)方法有點(diǎn)難,我自己就用的就是第二種:運(yùn)用模擬器,在電腦上運(yùn)行微信小程序,從而獲取小程序的wxapkg包,再用大佬寫的代碼進(jìn)行反編譯就行了。
首先,下載模擬器,這里我用的是夜神
下載好模擬器后,安裝上RE管理器(獲取wxapkg文件)、微信(運(yùn)行小程序)、QQ(主要是發(fā)送壓縮文件)。
在這里還是踩了一些坑,比如在模擬器里面下載的微信,是不能登錄的,我百度了一些,應(yīng)該是高版本的微信防止用戶在模擬器上面登錄,所以登不進(jìn)去。在這里的解決辦法就是按照低版本的微信(下面我給出了低版本的安裝包)。還有,在安裝node.js運(yùn)行環(huán)境的時(shí)候,盡量選擇安裝在默認(rèn)的目錄,不要修改安裝路徑,我改了路徑,就沒(méi)有安裝運(yùn)行成功過(guò),嗚嗚!
安裝方法:下載安裝包(apk類型的文件),再將其拖到模擬器桌面,它就會(huì)自動(dòng)安裝
微信、RE模擬器、反編譯腳本下載:下載地址
node.js運(yùn)行環(huán)境 下載
準(zhǔn)備工作下載好后,就可以開(kāi)始獲取小程序源碼了。在運(yùn)行小程序的時(shí)候,移動(dòng)端都會(huì)從微信下載小程序的源碼,也就是后綴為wxapkg的一個(gè)文件,我們首先就是要獲取它。這個(gè)很簡(jiǎn)單,直接打開(kāi)模擬器,運(yùn)行微信,運(yùn)行想要源碼的小程序。最后退出微信即可。
在模擬器桌面打開(kāi)RE管理器,這個(gè)時(shí)候它會(huì)請(qǐng)求權(quán)限,給它,始終。然后依次尋找路徑:
/data/data/com.tencent.mm/MicroMsg/appbrand/pkg/
當(dāng)我們看到一個(gè)后綴為wxapkg的文件,再對(duì)比下運(yùn)行時(shí)間,我們就可以大概知道哪個(gè)是小程序源碼了。
在這里我也踩了一個(gè)坑,那就是按照上面的路徑,我始終沒(méi)有找到我們需要的文件,好在,RE管理器有搜索文件的功能,我們直接搜索 pkg 就可以了 。哈哈,我找這個(gè)文件找了好久啊。
找到文件文件后,長(zhǎng)按鼠標(biāo)左鍵,會(huì)出現(xiàn)一個(gè)對(duì)話框(很多選項(xiàng)),我們選擇壓縮文件,然后點(diǎn)擊查看該文件,找到該壓縮文件,再長(zhǎng)按,選擇發(fā)送,選擇發(fā)送給電腦,這時(shí),我們就獲得了小程序的wxapkg包。
反編譯:
剛剛我們獲得的僅僅只是小程序的wxapkg類型的文件,這時(shí)我們是不方便直接查看的,還需要進(jìn)行反編譯。這里好在有大佬寫好了代碼,我們只需要運(yùn)用其就行了。
第一步:安裝node.js運(yùn)行環(huán)境,在上面給出了下載地址,這里再?gòu)?qiáng)調(diào)一下,就是一定要安裝在默認(rèn)目錄下
第二步:npm install
這里不要直接選擇node.exe,不要再這里npm install。 要在cmd里面安裝:
步驟:
1.win+r
2. 輸入cmd
3.切換到保存反編譯文件的文件夾(切換到那個(gè)目錄)
比如我的反編譯文件放在 d:\desktop\hf\wxappUnpacker-master) 就要切換的那個(gè)目錄下 不熟悉的可以百度一下 怎么切換路徑
4.再npm install ,依次安裝如下依賴:
1、npm install esprima
2、npm install css-tree
3、npm install cssbeautify
4、npm install vm2
5、npm install uglify-es
6、npm install js-beautify
7、npm install escodegen -g
安裝成功后,輸入(就是在cmd進(jìn)行npm install 后,再輸入):
node wuWxapkg.js [-d] //files 就是你想要反編譯的文件名 例如:我有一個(gè)需要反編譯的文件 _163200311_32.wxapkg 已經(jīng)解壓到了C盤根目錄下,那么就輸出命令 node wuWxapkg.js C:_163200311_32.wxapkg
回車運(yùn)行,反編譯腳本就能一步將.wxapkg 文件還原為微信開(kāi)發(fā)者工具能夠運(yùn)行的源文件,目錄地址和你反編譯的文件地址是一樣的。
這樣就獲得了小程序的源碼,不過(guò)有些不可以運(yùn)行,缺少app.json文件等問(wèn)題,自己修改下文件名就行。