一 準備工具javascript
1 node.js 運行環境css
下載地址:https://nodejs.org/en/java
2 反編譯的腳本node
連接:https://pan.baidu.com/s/1InxRoozDDb-C-g2rKGi1Cw
提取碼:i50k npm
3 夜神模擬器小程序
下載地址:https://www.yeshen.com/cn/download/fullPackage微信
二 開始反編譯app
1 獲取小程序pkg包:xss
在模擬器中登陸微信,隨便打開一個小程序A工具
打開文件管理器,找到/data/data/com.tencent.mm/MicroMsg 目錄 ,而後找到一個很長的
用戶隨機碼,繼續找到/appbrand/pkg/xxx,接下來會出現小程序A的wxapkg包(右鍵選擇複製)
找到安卓共享路徑
黏貼按鈕一直在上面,把小程序pkg包複製到安卓共享路徑,這樣就能夠在電腦訪問小程序pkg包
2 安裝腳本依賴
利用cmd cd到你剛剛下載下來的腳本目錄下,執行npm install
安裝依賴
3執行腳本命令
複製小程序pkg的路徑 執行
node wuWxapkg.js C:\Users\pc-03\Nox_share\ImageShare\xx.wxapkg C:\Users\pc-03\Nox_share\ImageShare\xx.wxapkg 是個人小程序路徑,你要複製本身的小程序路徑
三 編譯成功
四 異常狀況
一、Module build failed: Error: Cannot find module ‘escodegen’ (我遇到的)
npm i --save-dev escodegen
二、 Error: Cannot find module ‘cheerio’(我遇到的)
npm install uglify-es --save
npm install esprima --save
npm install css-tree --save
npm install cssbeautify --save
npm install vm2 --save
npm install uglify-es --save
npm install js-beautify --save
npm install escodegen --save
npm install cheerio --save
3 未識別的包
說明拿到的兩個.wxapkg文件裏,當前反編譯的包不是工程文件夾,再去RE文件管理器看下,是否是還有另外一個文件呢!這個.wxapkg裏面都是微信的基礎包,是無需還原的!!! 不少博客都沒說明這塊,害我覺得沒反編譯成功!
4 SyntaxError: Unexpected end of input 解決wxss缺失問題
修改wxappUnpacker中wuWxss.js部分代碼,具體以下:
function runVM(name,code){ let wxAppCode={},handle={cssFile:name}; let gg = new GwxCfg(); let tsandbox = {$gwx:GwxCfg.prototype["$gwx"],__mainPageFrameReady__:GwxCfg.prototype["$gwx"],__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](); } /* 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](); }*/ }
再次反編譯小程序,OK,wxss出來了
若是有遇到問題的小夥伴能夠加我qq392716797幫你反編譯獲取小程序源碼