反編譯微信小程序源碼

一、前言
       反編譯,聽起來很屌,其實還是簡單的,基本是傻瓜式操作。要想拿到微信小程序源碼,找到源文件在手機存放的位置就行,源文件拿到,用反編譯腳本跑一下,微信小程序代碼包裏的所有文件、所有資源就出來了(除了project.config.json小程序配置文件)。拿到源碼後,跑起來是能跑,但登錄、授權等涉及到appid的功能是不能用的,因爲被反編譯小程序的服務端appid和你本地添加的不一樣,這就是爲啥拉下來的源碼沒有project.config.json文件的原因,項目中appid是配置在這個文件裏,這裏一定程度上保護原小程序。

二、所需工具
    1.夜神模擬器,地址:夜神模擬器

     用來找尋微信小程序源文件,真機當然也可以,但麻煩,又是root權限,又是越獄的,夜神模擬器方便,直接在設置裏就可以設置超級用戶權限,超級權限拿到,就可以爲所欲爲了,通過下面這個RE文件管理器看到微信小程序源文件。
    2.RE文件管理器(拖到模擬器內自動安裝),地址:RE

     用來找尋微信小程序源文件,官方沒改動的話,應該會在這麼個路徑下,/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,路徑中有一段...,這裏表示不確定具體一個,反正就在這個MicroMsg下的其中一個文件夾,緊接着會看到appbrand文件夾,如果這樣那就找到位置了。
     3.nodejs運行環境,地址:nodejs

    反編譯腳本所需運行環境
     4.反編譯腳本,地址:wxappUnpacker

      用來反編譯微信小程序源文件,把源代碼給編譯出來,這是GitHub上一位大神的傑作,找到了這個比較好用的,其他版本自尋。
三、開始搞事情
      1.安裝好夜神模擬器後,並將在電腦下載好的RE文件管理器拖到模擬器內安裝。

      2.打開手機設置->找到超級用戶->右上角三個小點點擊一下,設置->點擊‘超級用戶訪問權限’,選擇‘僅限於應用’,這樣超級用戶權限就拿到了。

     image-01

      3.打開微信,沒有的在應用市場下載就行,打開想反編譯的微信小程序,小程序打開後,可以切換到RE文件管理器去找源文件了。

       這裏有一個機制,當點開一個微信小程序,如果本地這個文件夾下找到即將運行的小程序,會從微信服務器下載到本地,在以後的某個時刻又運行這個小程序,運行時,微信服務器會通知有沒有小程序新版本,如有新版本,會在後臺靜默下載,小程序繼續運行,新版本要到下一次運行纔會啓用,這就是微信小程序的更新機制。
       4.打開RE文件管理器,從更目錄開始,/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,找到源文件後,長按->點擊右上角三個小點,打開菜單,選擇‘壓縮所選文件’->完成後,點擊查看->長按,還是右上角,將壓縮包從模擬器發送出來到電腦上,方式多種,隨意。

image-02

      4.上面找到源文件並把源文件拉出來,從GitHub下載反編譯文件後,在桌面就有了這樣的文件夾結構

nimi-yuan這個文件夾下這裏放的是微信小程序源文件

image-04

lib這個文件夾下放的是反編譯腳本

image-03

5.進入到目錄:...\lib\wxappUnpacker-master文件夾下,右鍵,在這裏打開命令行窗口,將這幾句命令跑一下

        npm install esprima
        npm install css-tree
        npm install cssbeautify
        npm install vm2
        npm install uglify-es
        npm install js-beautify
        npm install escodegen

image-05
       最後使用這個命令進行反編譯源文件:node wuWxapkg.js filepath,例如我的是:node wuWxapkg.js C:\Users\zw\Desktop\fanbianyi\mini-yuan\_1034625975_4.wxapkg,反編譯過程過如遇到拋出缺少某個文件的提示,用npm install filename再次跑一下就行(filename爲拋出缺少文件名)。
       6.反編譯完成,用node wuWxapkg.js filepath執行成功後

image-06

       查看反編譯成功後的文件夾,源碼中除了project.config.json這個配置文件,其他的都有。

image-07

四、結語

       至此微信小程序的反編譯過程就結束了,學會之後,欣喜若狂,一頓操作猛如虎,拉了兩個小程序源碼後,心生一種罪惡感。這種反編譯方法很簡單,由此可見微信小程序源碼的安全性不好,過不久估計就不能這麼幹了,漏洞終究會被填補的。

原文來自:https://blog.csdn.net/Im_Telling_You/article/details/82797979

五,問題總結:

        以上方式基本能夠實現反編譯微信小程序,但是有一定的侷限性,對於新的微信版本適配會出現問題,現今能完整反編譯的只有一小部分,大多數時候會報適配錯誤。此反編譯工具原作者在以下博客中給出瞭解釋,並表示不再進行適配,有此需求的同學可以根據情況研究下原作者提出的建議,自己總結適配。博客地址於:https://github.com/qwerty472123/wxappUnpacker/issues/21

 

 

 

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