一、前言
微信小程序源碼提取反編譯,聽起來很屌,其實還是簡單的,基本是傻瓜式操作。要想拿到微信小程序源碼,找到源文件在手機存放的位置就行,源文件拿到,用反編譯腳本跑一下,微信小程序代碼包里的所有文件、所有資源就出來了(除了project.config.json小程序配置文件)。拿到源碼后,跑起來是能跑,但登錄、授權等涉及到appid的功能是不能用的,因為被反編譯小程序的服務端appid和你本地添加的不一樣,這就是為啥拉下來的源碼沒有project.config.json文件的原因,項目中appid是配置在這個文件里,這里一定程度上保護原小程序。
二、所需工具
1.夜神模擬器
用來找尋微信小程序源文件,真機當然也可以,但麻煩,又是root權限,又是越獄的,夜神模擬器方便,直接在設置里就可以設置超級用戶權限,超級權限拿到,就可以為所欲為了,通過下面這個RE文件管理器看到微信小程序源文件。
2.RE文件管理器(拖到模擬器內自動安裝)
用來找尋微信小程序源文件,官方沒改動的話,應該會在這么個路徑下,/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,路徑中有一段...,這里表示不確定具體一個,反正就在這個MicroMsg下的其中一個文件夾,緊接著會看到appbrand文件夾,如果這樣那就找到位置了。
3.nodejs運行環境
反編譯腳本所需運行環境
4.反編譯腳本
用來反編譯微信小程序源文件,把源代碼給編譯出來,這是GitHub上一位大神的杰作,找到了這個比較好用的,其他版本自尋。
三、開始搞事情
1. 安裝好夜神模擬器后,并將在電腦下載好的RE文件管理器拖到模擬器內安裝。
2. 打開手機設置->找到超級用戶->右上角三個小點點擊一下,設置->點擊‘超級用戶訪問權限’,選擇‘僅限于應用’,這樣超級用戶權限就拿到了。
3. 打開微信,沒有的在應用市場下載就行,打開想反編譯的微信小程序,小程序打開后,可以切換到RE文件管理器去找源文件了。
4. 打開RE文件管理器,從更目錄開始,/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,找到源文件后,長按->點擊右上角三個小點,打開菜單,選擇‘壓縮所選文件’->完成后,點擊查看->長按,還是右上角,將壓縮包從模擬器發送出來到電腦上,方式多種,隨意。
4. 上面找到源文件并把源文件拉出來,從GitHub下載反編譯文件后,在桌面就有了這樣的文件夾結構
nimi-yuan這個文件夾下這里放的是微信小程序源文件
5. 進入到lib文件夾下,右鍵,在這里打開命令行窗口,將這幾句命令跑一下
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen
6. 反編譯完成,用node wuWxapkg.js filepath執行成功后
查看反編譯成功后的文件夾,源碼中除了project.config.json這個配置文件,其他的都有。
四、結語
至此微信小程序的反編譯過程就結束了,學會之后,欣喜若狂,一頓操作猛如虎,拉了兩個小程序源碼后,心生一種罪惡感。這種反編譯方法很簡單,由此可見微信小程序源碼的安全性不好,過不久估計就不能這么干了,漏洞終究會被填補的。