反編譯微信小程序

前言

最近有一個任務,就是讓我試下反編譯微信小程序,搞起。事先說明,寫這篇博客,只是為了記錄過程,不建議大家都去反編譯,畢竟都是別人的勞動成果。然后反編譯的這個事例,也打了碼。如果貴公司的人發現了,希望及早更新處理下,以免接口的泄露。

準備工具

1、node.js環境,https://nodejs.org/en/
2、反編譯腳本,https://github.com/qwerty472123/wxappUnpacker
3、夜神模擬器,https://www.yeshen.com/ 主要是用來登錄微信,運行小程序,然后再拿到小程序的安裝包 wxapkg

1、獲取小程序的安裝包

1、我試了小米手機是拿不了小程序的安裝包的,即使是root了也不行,目錄是空的。所以,用夜神模擬器吧。打開夜神模擬器,里面有個應用中心,直接搜索微信下載安裝吧。安裝好微信后,登錄微信,打開你想要反編譯的小程序。ok,打開后,回到桌面,打開桌面的“ES文件瀏覽器”:


打開ES文件瀏覽器

打開root開關

打開根目錄

然后找到這個路徑:/data/data/com.tencent.mm/MicroMsg/1bd6b8205e3a41715b8e2cca72bc50f0/appbrand/pkg/
里面有你運行過的小程序安裝包,把它復制到主目錄,然后再通過微信發到你的電腦吧,然后就拿到了小程序的安裝包。


2、下載反編譯腳本到本地,并安裝相關配置

腳本目錄

打開命令窗口,cd到上面這個目錄,然后輸入以下:

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 wuWxapkg.js +空格+安裝包目錄,如下圖


然后就會自動反編譯,在安裝包目錄生成一個文件夾:


3、打開項目編譯

打開微信開發工具,自己在后臺創建一個小程序,拿到appid,并填進去。



點擊確定后,就能進去頁面了,這個時候,會提示以下錯誤:



這個是因為小程序的請求域名,都需要在后臺配置的。所以,你需要把這個域名,在你創建的那個小程序開發設置那里,填上。填上后,重新啟動開發者工具,這時,應該就正常了。如下圖:

然后,我們可以看到里面的代碼,都非常的清晰。



連接口都能看出來,這樣別人就能直接調用這個接口了。

總結

局限(包括但可能不限于以下內容)
1、實現中很多功能基于特定的版本(wcc-v0.6vv_20180111_fbi, 且不考慮面向低版本適配)和字符串搜索,所以不能很好的適應各種特殊情況。
2、wxml 文件擁有不同于 xml 和 html 文件的字符轉義規則,且尚未公開(并非"沒有"),因此未能很好的還原相關內容。
3、js 文件被壓縮后會丟失原始變量名等信息內容無法還原;wxss 文件壓縮后的注釋也會丟失。
4、wxs 文件會將所有的變量如 Math 改為 nv_Math ,這里僅通過字符串替換去除。
5、一些被引用 wxss 文件本身的源文件丟失,因此無法恢復原始目錄。
6、有些項目開啟了難以復原的es6轉es5選項,檢驗本項目結果是否正確時需要關閉項目中的es6轉es5選項。
7、wxml 中一些無法找到相對應 的正向語句的內容無法還原。
8、json 中components項丟失,僅會標注被其他包引用的自定義組件。

最后說兩句

大家可以利用這個工具,試試自己的小程序,是否能被反編譯出來,然后采取一些混淆措施等等。
盡量別動壞心機,造成商業犯罪就不好了。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,218評論 2 33
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,524評論 9 467
  • 時光靜靜的想念,我在頓河邊等待,也許是真的你不會來,但是我會一直一直一個人默守,許多事情不要說,一個眼神交流就夠了...
    不留心閱讀 521評論 2 6
  • 首先推薦睡前蒸桑拿,網購的桑拿浴箱,簡單好用,睡前蒸蒸,到頭頂微微冒汗的狀態,基本上躺下就能睡著,好眠無夢。 其次...
    贏瑩_51fd閱讀 191評論 1 2