<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      一、前言

        大家都知道編寫一個(gè)微信小程序是非常漫長(zhǎng)的,但是由于現(xiàn)階段微信小程序存在反編譯的可能,于是我去github上找到一個(gè)反編譯工具(跳轉(zhuǎn)
      <https://github.com/qwerty472123/wxappUnpacker>
      )這個(gè)工具其實(shí)很早就出來了,但是這個(gè)工具需要提取微信小程序的wxapkg文件,就是微信小程序編譯后的文件。最近發(fā)現(xiàn)電腦版微信可以打開微信小程序了,于是我去找了微信打開小程序后生成的wxapkg文件,沒想到輕而易舉的就拿到了wxapkg文件。下面為簡(jiǎn)單介紹下教程。

      二、簡(jiǎn)單介紹下wxapkg

      微信小程序一般是存在哪的?——毫無疑問當(dāng)然是在云端。

      微信如何運(yùn)行小程序?——首先需要在云端下載xxx.wxapkg文件到本地,再利用本地的一套機(jī)制運(yùn)行起來。

      那么如何才能在手機(jī)里找到小程序的源文件包呢?

      * 安卓具體目錄位置直接給出:
      * /data/data/com.tencent.mm/MicroMsg/{{user哈希值}}/appbrand/pkg/
      * 在這個(gè)目錄下,會(huì)發(fā)現(xiàn)一些 xxxxxxx.wxapkg 類型的文件,這些就是微信小程序的包
      * 此目錄是需要用戶root后從根目錄找出。
           電腦運(yùn)行小程序后具體目錄:

           C:\Users\{{電腦用戶名}}\Documents\WeChat
      Files\Applet\{{小程序AppID}}\{{隨機(jī)產(chǎn)生的數(shù)字}}\__APP__.wxapkg

           注:微信電腦版需是可運(yùn)行小程序的版本。

      微信小程序的格式就是:xxx.wxapkg

      * xxx.wxapkg是一個(gè)二進(jìn)制文件,有著其自己的一套結(jié)構(gòu)。
      * 關(guān)于.wxapkg的詳細(xì)內(nèi)容可以參考lrdcq大神的博文:微信小程序源碼閱讀筆記
      <http://lrdcq.com/me/read.php/66.htm>
      ?

      三、環(huán)境搭建

        1. node.js運(yùn)行環(huán)境?下載地址 <http://nodejs.cn/>? 如果沒有安裝nodejs,請(qǐng)先安裝一下

        2. 反編譯的腳本。?下載地址 <https://github.com/qwerty472123/wxappUnpacker>這里提供一個(gè)Github上
      qwerty472123大神寫的node.js版本的

        3. 安卓模擬器(也可用真機(jī)需root)獲取wxapkg請(qǐng)看4-5步, 新pc版微信(推薦此步驟),請(qǐng)看6步。

        4. 安卓模擬器(要求自帶root權(quán)限)下載地址自行百度,可以使用的是夜神模擬器,雷電等模擬器(自帶root),用來獲取小程序源文件

        5. RE管理器、MT管理器或者x-plore 賦予root權(quán)限下載地址自行百度
      到時(shí)候要拖到模擬器中的,進(jìn)入"/data/data/com.tencent.mm/MicroMsg/{{user哈希值}}/appbrand/pkg/"目錄根據(jù)小程序第一次打開時(shí)間找到對(duì)應(yīng)wxapkg

        6. 我用的是微信2.7內(nèi)測(cè)版,手機(jī)分享小程序給電腦版打開小程序,找到"C:\Users\{{電腦用戶名}}\Documents\WeChat
      Files\Applet\{{小程序AppID}}\{{隨機(jī)產(chǎn)生的數(shù)字}}\__APP__.wxapkg" 一般小程序和分包都會(huì)在。

      ?

      四、詳細(xì)過程(以pc版微信為例)

        分享給電腦版微信小程序

        

      ?

        點(diǎn)擊打開

        ?

      ?

        導(dǎo)出wxapkg

        ?

      ?

        獲取到wxapkg后

        將其拷貝到某一路徑下,在此路徑下按住Shift鍵,同時(shí)鼠標(biāo)點(diǎn)擊右鍵選擇在此處打開Powershell窗口如圖



      ?

        在node命令窗口中依次安裝如下依賴:

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


        安裝完成之后會(huì)出現(xiàn)node_modules文件夾這是運(yùn)行wxapkg反編譯腳本的必備環(huán)境

        

        下面輸入命令node wuWxapkg.js <wxapkg目錄>如下

          

      ?  運(yùn)行后,如果不出現(xiàn)錯(cuò)誤,基本就可以在微信開發(fā)者工具打開

        ?

      ?

      ?

        反編譯腳本就能一步將.wxapkg 文件還原為微信開發(fā)者工具能夠運(yùn)行的源文件,目錄地址和你反編譯的文件地址是一樣的
      然后在微信開發(fā)者工具新增導(dǎo)入項(xiàng)目即可打開

        運(yùn)行成功,源碼獲取完成

        ?

      五、結(jié)束語(yǔ)

        
      現(xiàn)階段的wxapkg,即微信編譯后的可執(zhí)行文件,在我個(gè)人眼里,加密力度是不夠的,雖然在對(duì)我們學(xué)生黨來說是學(xué)習(xí)的交流的好手段,但是在社會(huì)上運(yùn)作,還是存在著巨大的安全隱患,隨著科技的發(fā)展,相信不久,這一方法將會(huì)失效,所以趁現(xiàn)在還有學(xué)習(xí)的機(jī)會(huì),可以去搞。


        上線的源代碼能如此簡(jiǎn)單的被獲取到,不得不說小程序的源碼安全存在很大的隱患,這一點(diǎn)很多開發(fā)者應(yīng)該也知道,所以發(fā)現(xiàn)有些小程序會(huì)將重要的js邏輯代碼柔在一個(gè)js文件中,這樣,即使被獲取了源碼,也不是很容易讀懂,但是任然避免不了被窺視的問題。

        實(shí)際上,小程序只是很簡(jiǎn)單的將圖片、js和json文件壓在一起,而壓制的過程就是Wxml -> Html、 Wxml -> JS、Wxss ->
      Css,轉(zhuǎn)換后文件二進(jìn)制格式跟后綴名為wx二進(jìn)制格式完全一致。

       

      ?

       

      ?  注明:此文章為Rakers原創(chuàng)文章,僅供學(xué)習(xí)交流,切勿用于違法行為

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          草草久久综合高潮影院 | 国产视频aaa | 日韩精品一区二区三区四区五区 | 风间由美av电影 国产黄a三级三级三级看三级戴璐 | 受被攻做到腿发颤高h视频网站 | 女操逼逼| 国产美女免费视频 | 伊人国产在线视频 | 古装一级黄色片 | 爱爱网站一区 |