反編譯處於技術學習角度,瞻仰大神代碼。
使用工具
- node
- mumu安卓模擬器
獲取小程序文件
- 小程序的代碼壓縮之后 會形成一個后綴為 wxapkg 的文件,下載到微信客戶端
- 打開mumu模擬器,安裝微信登錄之后,打開步步換小程序 ,這時客戶端已經下載了小程序的二進制文件,
- 文件路徑為 /data/data/com.tencent.mm/MicroMsg/{{一串32位的16進制字符串文件夾}}/appbrand/pkg/
- 可能會有多個包,分別為小程序的主包和分包。一起復制到mumu模擬器的共享文件夾中,這樣pc端就拿到了小程序的二進制文件
小程序文件解析
- 獲取的文件無法直接打開,有網友通過閱讀微信解壓小程序的代碼,編寫了同樣解壓邏輯的node項目,來做第一步解析 https://github.com/qwerty472123/wxappUnpacker
- 該工具在解析步步換小程序時,解壓文件之后,在生成相關源代碼 wxml,wxss,wcss,json 時會報錯,原因是步步換使用了 插件,組件,導致,需在 wxappUnpacker 代碼上 添加部分邏輯,去除插件代碼和組件代碼的干擾。之后對 wxml,wxss,wcss,json 單獨解析,就可以獲取到全部的源碼。