之前因為開發筆記本突然出了毛病,導緻小程式的源代碼全部丢失了,參照網上大神的部落格,反編譯wxapkg檔案,生成小程式源碼,這些原創的作者是真的強。
先想一個很簡單的問題,小程式的源檔案存放在哪裡?
答:當然是微信伺服器上,普通使用者想要擷取到,肯定是很困難的
簡單思考個小程式的場景,
當我們點開一個微信小程式是很,其實是微信已經将它從伺服器下載下傳到了手機,然後再來運作的。是以,
我們沒能力從伺服器上擷取到,但是我們可以從手機本地找到已經下載下傳過的小程式源檔案。
那麼小程式檔案存儲再手機上的什麼位置呢?
安卓手機舉例:(蘋果我也不知道)
/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進制字元串名檔案夾}}/appbrand/pkg/
在這個目錄下,會發現一些xxxxxx.wxapkg類型的檔案,這些就是微信小程式的包
微信小程式的格式為: .wxapkg
.wxapkg是一個二進制檔案有其一套自己的結構
進入正題:
第一步:下載下傳node.js
下載下傳位址: https://nodejs.org/en/
二:下載下傳反編譯腳本
下載下傳位址:https://github.com/qwerty472123/wxappUnpacker 記住分支改為master

三:下載下傳安裝夜神模拟器(反正本仙女覺得很不很好用,微信都登不上去==,或許是我人品問題)
下載下傳位址:https://www.yeshen.com/
四:下載下傳RE檔案管理器(眼睛睜大點看)
五:擷取.wxapkg檔案
1:打開安裝好的安卓模拟器,并在模拟器中安裝微信、RE檔案管理器
>微信在模拟器自帶的應用商店裡搜尋下載下傳安裝即可
>下載下傳好的RE檔案管理器安裝包直接拖拽進打開的模拟器視窗就會自動安裝
>按下圖進行設定
3:模拟器裡打開微信,在微信中運作你想要擷取的小程式
>模拟器微信中運作一下後,直接切回模拟器桌面運作RE檔案管理器
>按照下面的目錄結構找檔案
/data/data/com.tencent.mm/MicroMsg/{數字串}/appbrand/pkg/
六:反編譯
準備反編譯腳本檔案和.wxapkg檔案
cd 到下載下傳好的反編譯腳本目錄下
在node指令視窗中依次安裝如下依賴:
>npm install esprima
>npm install css-tree
>npm install cssbeautify
>npm install vm2
>npm install uglify-es
安裝好依賴之後,就是最後一步了,反編譯 .wxapkg 檔案
在.wxapkg檔案所在目錄下輸入 node wuWxapkg.js [-d] //files 就是你想要反編譯的檔案名 例如:我有一個需要反編譯的檔案 _163200311_32.wxapkg 已經解壓到了D盤根目錄下,那麼就輸出指令 node wuWxapkg.js D:\_163200311_32.wxapkg
注意1:使用node wuWxapkg.js 反編譯指令時,如果報 Cannot find module 'xxx' 這種類型的錯誤,
就直接使用 npm install xxx 先安裝