獲取鏈接:https://pan.baidu.com/s/1dmzs8jARjAmoNHWlUm78ew?pwd=3ksb? 提取碼:3ksb
下載工具包后進行解壓首先安裝node.js環境,安裝完成后通過cmd運行node -vnpm -v查看版本是否安裝成功。
/wp-//1970/01/-image--.png" />
0x03小程序包解密
PC端和手機端小程序在運行時會將程序包緩存到本地,但是程序包經過了加密,我們不能夠直接進行反編解包,這里我們需要首先對小程序包進行解密后才能夠對其進行反編。
小程序包的解密首先需要找到小程序包緩存到本地的位置,這里以PC端為例不演示手機端。打開微信設置-文件管理,打開下圖中的路徑找到下圖路徑中 Files文件夾。默認微信緩存文件在系統C盤用戶文檔目錄下微信小程序判斷字符串,我這里微信緩存位置做了修改。
路徑下目錄就是微信小程序緩存的位置
打開目錄我們可以看到有很多以wx開頭+16位16進制數命名的文件夾,每個文件夾下就是一個微信小程序的緩存。
隨便打開一個目錄目錄下名為.包就是微信小程序的主包。
有些小程序可能會有下面這種情況除了.包外還有一個或多個其他.后綴的文件,其他的文件就是也是小程序的包,可以看做是子包,對于功能比較復雜的小程序可能會有多個包。
下這么多的小程序緩存我們如何快速定位到自己要進行反編的小程序,這里總結了兩個方法:
第一總方法是根據首次打開小程序的時間,我們第一次打開某個小程序的時候這時小程序會緩存到本地,可根據文件的修改時間大致判斷。
第二種方法更為簡單,我們直接將文件夾下的所有小程序緩存包刪除掉,再訪問一次將要準備反編的小程序,這時下就只有這一個小程序的緩存包了,簡單粗暴哈哈哈。
我們找到了小程序的包下一步就是對包進行解密,解密前我們先來了解一下加密。
為了保護源碼微信使用加密的方式把包源碼進行加密,加密后的文件的起始為。
加密方法如下
了解了加密后或許你這時候一定有了什么想法,沒錯你想的肯定是手撕代碼寫一個解密腳本,對于微信包解密的腳本網上有很多相關的分享這里我不在摘抄了,有興趣的小伙伴們可以自行去百度。這里我們使用 @ 師傅使用C#開發的PC微信小程序包解密工具。
下面我們就使用小程序包解密工具對包進行解密微信小程序判斷字符串,解壓小程序包解密工具如下圖運行.exe
解密成功后輸出到文件夾下,文件格式不變。
0x04小程序包反編譯
經過解密后的的包格式依然是.,下一步我們需要對包進行反編譯就可以獲取小程序的源代碼。
我們使用中的腳本對其進行反編譯。步驟如下:
解壓 進入這個目錄后在目錄下運行cmd 執行命令
node?wuWxapkg.js?J:Desktopwxdecodewx8f446acf8c4a85f5.wxapkg ##?“J:Desktopdecodewx8f446acf8c4a85f5.wxapkg”為解密后的小程序包路徑位置
運行上述命令反編譯完成后在包路徑下生成一個同名文件夾存儲源代碼
如果我們需要反編的小程序中有多個包,也就是有主包和子包的情況時,主包和子包的反編過程與前面的步驟相同,先進行解密。反編的時候先對主包進行反編,再對子包進行反編,子包反編與主包略有不同。使用命令如下:
## 1.主包反編
node wuWxapkg.js xxx ? ? ## xxx為主包的路徑
## 2.子包反編
node wuWxapkg.js xxx1 -s= xxx2 ## xxx1為子包的文件路徑,xxx2為反編主包生成的文件路徑
反編譯如果使用過程中出現報錯缺少相關組件,在根目錄下使用cmd運行以下命令進行安裝,通過我分享的工具包中是已經更新安裝完的在文件下,默認不需要再重新安裝,如執行存在相關組件問題可嘗試重裝解決。
npm?installnpm?install?esprima???? npm?install?css-tree???? npm?install?cssbeautify???? npm?install?vm2???? npm?install?uglify-es???? npm?install?js-beautify
0x05源碼查看
完成解密和反編后我們已經獲取到了小程序包的源碼,最后我們可以使用微信小程序開發工具進行編輯開發或查看審閱源碼。
在我分享的工具包中提供了win64版本的微信小程序開發工具安裝包,如需不同版本的安裝包也可自行到微信開發者官方網頁進行下載
安裝完成后我們運行工具使用游客模式登錄
選擇導入,進行導入小程序源碼
選擇要導入的小程序源碼路徑
導入后就可以進行審閱編輯操作了。
我在前面有提到手機端的微信小程序,實際上手機端和PC端的小程序包都是相同格式的只要我們找到手機小程序包緩存位置將包導出到電腦中也可進行反編,在PC端進行反編相對于從手機提取小程序包要方便一些。有興趣的小伙伴可進行嘗試。
參考連接: