微信小程式反編譯獲取原始碼
前言
看到人家上線的小程式的效果,純靠推測,部分效果在絞盡腦汁後能做出大致的實現,但是有些細節,費勁全力都沒能做出來。很想一窺原始碼?檢視究竟?看看大廠的前端大神們是如何規避了小程式的各種奇葩的坑?那麼趕緊來試試吧
1、準備工作
1、node.js執行環境
我用的是mac電腦,可以在終端用 node -v 指令檢視是否安裝了node的最新版本,如果已安裝,可以看到node的版本號
2、反編譯的指令碼wxappUnpacker下載地址 https://github.com/qwerty472123/wxappUnpacker
這是Github上qwerty472123大神寫的反編譯工具
3、root 過的安卓手機一臺
看很多教程推薦夜神模擬器,但是我新安裝的夜神模擬器微信點開會閃退,所以只能用root手機
微信小程式的wxapkg包,在手機裡的目錄/data/data/com.tencent.mm/MicroMsg/appbrand/{user}/pkg/裡,我用的是RE檔案管理器獲取,如下圖

圖片發自簡書App
先將目錄下的wxapkg壓縮成zip格式檔案再發送到電腦上,獲取到wxapkg包後,就可以進行正式的反編譯了。
1、開啟終端cd 到你clone或者下載好的反編譯指令碼wxappUnpacker目錄下,依次輸入如下命令安裝反編譯指令碼的執行依賴
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
安裝好依賴之後,就開始反編譯 .wxapkg 檔案
在當前目錄下輸入 node wuWxapkg.js <files> files 就是你想要反編譯的包的路徑 例如:我有一個需要反編譯的檔案 776200096_15.wxapkg 已經解壓到了桌面目錄下(mac電腦),那麼就輸入命令 node wuWxapkg.js /Users/apple/Desktop/_-776200096_15.wxapkg
由於近期微信內部的升級,會報如下錯誤
$gwx is not defined
要正常反編譯小程式,目前需要更改部分反編譯工具的原始碼,本次完美反編譯飛訊卡片小程式的原始碼示例如下

圖片發自簡書App
解決 $gwx is not defined 報錯可參考我的上一篇文章。