天天看點

反編譯擷取任何微信小程式源碼

之前因為開發筆記本突然出了毛病,導緻小程式的源代碼全部丢失了,參照網上大神的部落格,反編譯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 先安裝

繼續閱讀