微信小程序wxappUnpacker反編譯報錯vm.js ReferenceError: __mainPageFrameReady__ is not defined的問題解決方法

微信小程序wxappUnpacker反編譯報錯vm.js ReferenceError: __mainPageFrameReady__ is not defined的問題解決

打開page-frame.html到對底部 去掉 __mainPageFrameReady__()就可以 

標點符號啥的都不要動  只刪掉這個就可以

在執行 node wuWxss.js xcx\新生成的目錄 

生成成功

筆記:

一、前言
最近在學習微信小程序開發,半個月學習下來,很想實戰一下踩踩坑,

於是就仿寫了一個阿里媽媽淘寶客小程序的前端實現,過程一言難盡,差不多兩週時間過去了,發現小程序的坑遠比想象的要多的多!!在實際練手中,完全是黑盒的,看到人家上線的小程序的效果,純靠推測,部分效果在絞盡腦汁後能做出大致的實現,但是有些細節,費勁全力都沒能做出來。很想一窺源碼,查看究竟,看看大廠的前端大神們是如何規避了小程序的各種奇葩的坑。

於是就想到獲取到小程序地源文件,然後再對其進行反編譯還原爲源代碼,來作爲學習參考。

我百度了各種關於小程序地反編譯教程,但是感覺都不太適合像我這樣地初學小白,踩了挺多坑。

在這裏把我重新簡化好的,快速地獲取一個微信小程序源碼的方式記錄下來。

二、微信小程序本地保存的文件xxxxx.wxapkg

具體目錄位置直接給出:
/data/data/com.tencent.mm/MicroMsg/01243abc0...../appbrand/pkg/
在這個目錄下,會發現一些 xxxxxxx.wxapkg 類型的文件,這些就是微信小程序的包
微信小程序的格式就是:.wxapkg
.wxapkg是一個二進制文件,有其自己的一套結構。

wxapkg 包的獲取

Android 手機最近使用過的微信小程序所對應的 wxapkg 包文件都存儲在特定文件夾下,可通過以下命令查看:

adb pull /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg

其中{User} 爲當前用戶的用戶名,類似於 2bc**************b65

 

三、準備材料
node.js運行環境

反編譯程序 https://github.com/qwerty472123/wxappUnpacker
夜神模擬器,用來獲取小程序源文件
RE管理器

四、詳細步驟

  • node wuConfig.js <files...> 將 app-config.json 中的內容拆分到各個文件對應的 .json 和 app.json , 並通過搜索 app-config.json 所在文件夾下的所有文件嘗試將 iconData 還原爲 iconPath 。
  • node wuJs.js <files...> 將 app-service.js (或小遊戲中的 game.js ) 拆分成一系列原先獨立的 javascript 文件,並使用 Uglify-ES 美化,從而儘可能還原編譯前的情況。
  • node wuWxml.js [-m] <files...> 將編譯/混合到 page-frame.html ( 或 app-wxss.js ) 中的 wxml 和 wxs 文件還原爲獨立的、未編譯的文件。如果加上-m指令,就會阻止block塊自動省略,可能幫助解決一些相關過程的 bug 。
  • node wuWxss.js <dirs...> 通過獲取文件夾下的 page-frame.html ( 或 app-wxss.js ) 和其他 html 文件的內容,還原出編譯前 wxss 文件的內容。
  • node wuWxapkg.js [-o] [-d] [-s=<Main Dir>] <files...> 將 wxapkg 文件解包,並將包中上述命令中所提的被編譯/混合的文件自動地恢復原狀。如果加上-o指令,表示僅解包,不做後續操作。如果加上-d指令,就會保留編譯/混合後所生成的新文件,否則會自動刪去這些文件。同時,前面命令中的指令也可直接加在這一命令上。而如果需要解壓分包,請先解壓主包,然後執行node wuWxapkg.js [-d] -s=<Main Dir> <subPackages...>,其中Main Dir爲主包解壓地址。除-d-s外,這些指令兩兩共存的後果是未定義的(當然,是不會有危險的)。

參考文檔:

https://blog.csdn.net/qq_37936542/article/details/81003211

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章