微信小程式反編譯~2020年

菜虛坤發表於2020-07-19

摘要

安裝wxappUnpacker小程式反編譯工具並使用(2020.03)

關鍵詞: 微信小程式反編譯 wxss

介紹

上次分享了web前端爬取工具 ,那麼這次也同樣講講微信小程式反編譯吧,對於像博主這種審美奇低且前端技術渣渣的人來說,實在是利器呀。不過儘量只是反編譯來學習研究啦!

安裝反編譯指令碼

首先,得先了解下怎麼安裝,內容過長,我就不Ctrl CV了(主要是安裝簡單,成功並且完美地編譯難)

完美地反編譯出來難就難在微信小程式一直更新,但是編譯工具又是舊的

First,終於成功了,分享一波超詳細小程式原始碼獲取方法——圖文!

如果想省事,安裝nodejs之後直接下載下面的連結的檔案替換掉你的反編譯工具:

https://gitee.com/Sao-operation/wxappUnpacker/repository/archive/master.zip

如果你只是樣式編譯出問題了(就是page的wxss都是空白的),那麼

  • 修改wxappUnpacker檔案中的 wuWxss.js
function runVM(name, code) {
      // let wxAppCode = {}, handle = {cssFile: name};
      // let vm = new VM({
      //    sandbox: Object.assign(new GwxCfg(), {
      //       __wxAppCode__: wxAppCode,
      //       setCssToHead: cssRebuild.bind(handle)
      //    })
      // });
      // vm.run(code);
      // for (let name in wxAppCode) if (name.endsWith(".wxss")) {
      //    handle.cssFile = path.resolve(frameName, "..", name);
      //    wxAppCode[name]();
      // }
 
      let wxAppCode = {};
      let handle = {cssFile: name};
      let gg = new GwxCfg();
      let tsandbox = {
         $gwx: GwxCfg.prototype["$gwx"],
         __mainPageFrameReady__: GwxCfg.prototype["$gwx"],   //解決 $gwx is not defined
         __vd_version_info__: GwxCfg.prototype["$gwx"],  //解決 __vd_version_info__ is not defined
         __wxAppCode__: wxAppCode,
         setCssToHead: cssRebuild.bind(handle)
      }
 
      let vm = new VM({sandbox: tsandbox});
      vm.run(code);
      for (let name in wxAppCode) {
         if (name.endsWith(".wxss")) {
            handle.cssFile = path.resolve(frameName, "..", name);
            wxAppCode[name]();
         }
      }
   }

使用

獲取wxapkg檔案

  1. 安裝夜深模擬器(但是這裡有個問題,夜深模擬器可能用不了,我只記得是多開器裡開一個新的才行,而且以後每次使用都得切換成那個新的)

    微信小程式反編譯~2020年
  2. 開啟夜深模擬器登入微信,點選需要學(piao)習(qie)的微信小程式

  3. 開啟RE檔案管理器(沒有的話就先安裝吧),到如下目錄,開啟這個看著名字是十六進位制且很長的資料夾(每個人的會不一樣)

    微信小程式反編譯~2020年
  4. 進入如下目錄,選擇wxapkg檔案(注意日期,例如紅線部分意為6月17日)

    微信小程式反編譯~2020年
  5. 想辦法把wxapkg檔案從夜深模擬器裡傳送到你的能找到到電腦資料夾裡吧

反編譯

  1. 第一步

    開啟nodejs

    跳轉到反編譯指令碼的目錄,例如反編譯指令碼呢放在D盤,且反編譯指令碼資料夾名為”wxappUnpacker“,如果是Windows系統( 如果是Linux去掉下面那個蛋疼的 /d),則在node.js command pormpt輸入:

    cd/d D:\wxappUnpacker
    

    cd D:\wxappUnpacker
    cd D:
    
  2. 第二步
    跳轉到反編譯指令碼的根目錄之後,在電腦資料夾裡找到wxapkg檔案,例如wxapkg檔案放在D盤,且檔名為_000000_1.wxapkg,則在node.js command pormpt輸入:

    node wuWxapkg.js -d D:\_000000_1.wxapkg
    

    再回車

  3. 第三步
    最後去找和.wxapkg檔案相同路徑下的同名資料夾,該檔案用微信開發者工具開啟即可。

結論

反編譯...真香(我這是饞他的程式碼嗎,我這是在學習研究)

參考資料

終於成功了,分享一波超詳細小程式原始碼獲取方法——圖文:順毛驢_dedc

反編譯微信小程式錯誤: $gwx is not defined和__vd_version_info__ is not defined 已解決

相關文章