1、前言
你們都知道編寫一個微信小程序是很是漫長的,可是因爲現階段微信小程序存在反編譯的可能,因而我去github上找到一個反編譯工具(跳轉)這個工具其實很早就出來了,可是這個工具須要提取微信小程序的wxapkg文件,就是微信小程序編譯後的文件。最近發現電腦版微信能夠打開微信小程序了,因而我去找了微信打開小程序後生成的wxapkg文件,沒想到垂手可得的就拿到了wxapkg文件。下面爲簡單介紹下教程。php
2、簡單介紹下wxapkg
微信小程序通常是存在哪的?——毫無疑問固然是在雲端。css
微信如何運行小程序?——首先須要在雲端下載xxx.wxapkg文件到本地,再利用本地的一套機制運行起來。html
那麼如何才能在手機裏找到小程序的源文件包呢?node
- 安卓具體目錄位置直接給出:
- /data/data/com.tencent.mm/MicroMsg/{{user哈希值}}/appbrand/pkg/
- 在這個目錄下,會發現一些 xxxxxxx.wxapkg 類型的文件,這些就是微信小程序的包
- 此目錄是須要用戶root後從根目錄找出。
電腦運行小程序後具體目錄:git
C:\Users\{{電腦用戶名}}\Documents\WeChat Files\Applet\{{小程序AppID}}\{{隨機產生的數字}}\__APP__.wxapkggithub
注:微信電腦版需是可運行小程序的版本。shell
微信小程序的格式就是:xxx.wxapkgnpm
- xxx.wxapkg是一個二進制文件,有着其本身的一套結構。
- 關於.wxapkg的詳細內容能夠參考lrdcq大神的博文:微信小程序源碼閱讀筆記
3、環境搭建
1. node.js運行環境 下載地址 若是沒有安裝nodejs,請先安裝一下json
2. 反編譯的腳本。 下載地址這裏提供一個Github
上qwerty472123
大神寫的node.js版本
的小程序
3. 安卓模擬器(也可用真機需root)獲取wxapkg請看4-5步, 新pc版微信(推薦此步驟),請看6步。
4. 安卓模擬器(要求自帶root權限)下載地址自行百度,可使用的是夜神模擬器,雷電等模擬器(自帶root)
,用來獲取小程序源文件
5. RE管理器、MT管理器或者x-plore 賦予root權限下載地址自行百度 到時候要拖到模擬器中的,進入"/data/data/com.tencent.mm/MicroMsg/{{user哈希值}}/appbrand/pkg/"目錄根據小程序第一次打開時間找到對應wxapkg
6. 我用的是微信2.7內測版,手機分享小程序給電腦版打開小程序,找到"C:\Users\{{電腦用戶名}}\Documents\WeChat Files\Applet\{{小程序AppID}}\{{隨機產生的數字}}\__APP__.wxapkg" 通常小程序和分包都會在。
4、詳細過程(以pc版微信爲例)
分享給電腦版微信小程序
點擊打開
導出wxapkg
獲取到wxapkg後
將其拷貝到某一路徑下,在此路徑下按住Shift鍵,同時鼠標點擊右鍵選擇在此處打開Powershell窗口如圖
在node命令窗口中依次安裝以下依賴:
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen
安裝完成以後會出現node_modules文件夾這是運行wxapkg反編譯腳本的必備環境
下面輸入命令node wuWxapkg.js <wxapkg目錄>以下
運行後,若是不出現錯誤,基本就能夠在微信開發者工具打開
反編譯腳本就能一步將.wxapkg 文件還原爲微信開發者工具可以運行的源文件,目錄地址和你反編譯的文件地址是同樣的 而後在微信開發者工具新增導入項目便可打開
運行成功,源碼獲取完成
5、結束語
現階段的wxapkg,即微信編譯後的可執行文件,在我我的眼裏,加密力度是不夠的,雖然在對咱們學生黨來講是學習的交流的好手段,可是在社會上運做,仍是存在着巨大的安全隱患,隨着科技的發展,相信不久,這一方法將會失效,因此趁如今還有學習的機會,能夠去搞。
上線的源代碼能如此簡單的被獲取到,不得不說小程序的源碼安全存在很大的隱患,這一點不少開發者應該也知道,因此發現有些小程序會將重要的js邏輯代碼柔在一個js文件中,這樣,即便被獲取了源碼,也不是很容易讀懂,可是任然避免不了被窺視的問題。
實際上,小程序只是很簡單的將圖片、js和json文件壓在一塊兒,而壓制的過程就是Wxml -> Html、 Wxml -> JS、Wxss -> Css,轉換後文件二進制格式跟後綴名爲wx二進制格式徹底一致。
註明:此文章爲Rakers原創文章,僅供學習交流,切勿用於違法行爲
原文出處:https://www.cnblogs.com/Rakers1024/p/11482725.html