介紹一下背景灾炭,樓主是一個骨灰級夢幻西游玩家蜈出,最近發(fā)現了一款微信小程序涛酗,可以模擬夢幻中的一些狗托操作,比如打書啦只泼,挖寶啦什么的请唱。同時樓主也是小程序開發(fā)初學者十绑,對這種鑒定裝備內部實現的邏輯很好奇酷勺,抱著學習的態(tài)度鸥印,在網上苦苦找了幾天方法并經歷了整整四天(資質愚鈍不要笑話我)库说,實踐嘗試與踩坑,終于成功獲得了源文件潜的。下面專門介紹一下適合類似我這樣的小白的獲取方法!(只要你知道什么是小程序就可以P挪弧)
??要把大象裝冰箱,攏共分幾步下硕?
第一步:把冰箱門打開;
第二步:把大象裝進去誉尖;
第三步:把冰箱門帶上。
要獲取小程序文件包攏共分幾步猩谊?
第一步:把小程序打開墙牌;
第二步:把小程序文件(.wxapkg)拿下來;
第三步:把文件還原棒口。
正經的,完整的獲取流程為:①獲得小程序.wxapkg文件茎毁;②對.wxapkg進行反編譯獲得源文件包
為閱讀方便七蜘,提供本文目錄如下:
不賣關子橡卤,直接入正題
關于如何把.wxapkg文件拿到電腦上碧库,這里提供兩個方法:
方法一:使用電腦上的安卓模擬器谈为;方法二:使用手機伞鲫;下面分別進行介紹:
方法一:
·電腦下載任何一款安卓模擬器秕脓;(目前樓主親測的幾款模擬器如天天模擬器吠架,夜神模擬器傍药,雷電模擬器拐辽,包括騰訊手游助手在打開小程序時都會出現閃退或無法打開的現象,不過問題不大菠劝,不影響后面)
·下載微信赶诊、QQ(可在模擬器直接搜索下載)舔痪,RE文件管理器(下載地址https://pan.baidu.com/s/13c8Oefg9FVzkT7-_xh6J6g辙喂,下載好后直接拖拽進打開的模擬器窗口就會自動安裝)
·搜索你想獲取源碼的小程序巍耗,如樓主搜索“”炬太,點擊進入
·進入時可能出現異常亲族,如騰訊手游助手會一直轉圈可缚,或提示運行環(huán)境加載失敗霎迫,天天模擬器則直接閃退,不過都無所謂帘靡,不影響后面操作知给;
經過上一步后,打開RE文件管理器,
過程中會詢問用戶權限涩赢,點擊允許就好了戈次,該操作目的是為了能讓RE管理器順利的獲取到ROOT權限
·打開RE文件管理器后筒扒,按照該目錄/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進制字符串文件夾}}/appbrand/pkg/尋找怯邪,根據時間,判斷自己想要的那個小程序花墩。
依次點擊:
最后根據使用時間選擇判斷悬秉,沒錯就是他啦:
·鼠標左鍵長按該文件,彈出操作選項观游,點擊右上角的三個點搂捧,向下滾動鼠標滾輪,選擇壓縮所選文件懂缕。壓縮完后點擊查看,通過QQ發(fā)送到我的電腦王凑。(直接發(fā)送未壓縮的.wxapkg文件會提示無效搪柑,因此采用壓縮后發(fā)送再解壓的方式。)
·解壓到當前文件夾索烹,將解壓出來的.wxapkg文件隨便放在一個位置工碾,樓主直接放在D盤了
方法二:通過手機獲取.wxapkg文件,這里直接給百度經驗xyytwz作者的方法百姓,通過備份微信APP渊额,再在電腦上索引相關目錄
原文https://jingyan.baidu.com/article/6d704a13529ab728da51ca4f.html
兩種方法大同小異,文字雖多垒拢,操作起來很簡單,目的就是為了把目標小程序的.wxapkg文件放到電腦上求类,以便于后面的反編譯操作奔垦。
②對.wxapkg反編譯獲取源文件包:
此步比較難,也是樓主花費了90%時間的地方尸疆,坑也比較多椿猎,不過大家不用擔心,該踩的坑我都踩了寿弱,樓主盡量講的詳細犯眠,爭取讓大家一次成功。
準備工作:
·node.js運行環(huán)境症革。首先下載一個node筐咧,下可以去官網nodejs.org/en/,樓主下載的是左邊這個10.16.3LTS地沮。
一路nxet直至finish……
參考的網上好多大神提到的需要設置環(huán)境變量嗜浮,但是本人運行時沒有設置環(huán)境變量也能正常運行羡亩,不過為了保險起見,還是設置一下吧~
右鍵我的電腦危融,或在文件管理器中郵件此電腦(window10)畏铆,點擊高級系統(tǒng)設置,
高級→環(huán)境變量→系統(tǒng)變量欄新建→輸入變量名(任意取名)和變量值(樓主的NODE安裝在了D盤Program Files文件夾下吉殃,各位可根據實際情況輸入辞居,但最終指向node_modules文件夾)
·打開命令提示符,分別輸入node -v蛋勺,npm -v瓦灶,結果為版本號,說明安裝成功(npm已經集成到node里不需要額外安裝)
·下載反編譯腳本
這里提供一個Github上 qwerty472123 大神寫的node.js版本的抱完,當然也有其它版本的贼陶,這里我只是簡單地用node.js版本舉例
地址:https://github.com/qwerty472123/wxappUnpacker
Clone or download→ Downliad ZIP
將下載下來的ZIP解壓,解壓位置里不要有漢字不要有空格(如Program Files)巧娱!否則在后面反編譯時會報出莫名其妙的錯誤5镎!~樓主直接將wxappUpacker-master放在了D盤!
正戲禁添,劃重點了撮胧!
·打開node.js命令窗口,注意不是NODE.JS老翘!好多小白容易在這里卡殼芹啥,感興趣的可以去了解了解NODE.JS,在此不贅述铺峭。
·cd到反編譯腳本目錄下
本小白曾經在這又卡殼了墓怀,哭泣
其實cd是命令提示符的一個命令,可以實現不同目錄的切換逛薇,更多詳細用法可以百度CMD中cd命令用法捺疼。本步驟只需要在Node.js命令提示窗口中輸入cd/d D:\wxappUnpacker-master
本人反編譯腳本wxappUnpacker-master文件夾直接放在了D盤,若您解壓到了其他路徑永罚,按照實際情況修改cd命令即可啤呼。
·在node窗口中使用npm安裝7個依賴。逐條執(zhí)行命令
npm install esprima呢袱;
npm install css-tree官扣;
npm install cssbeautify;
npm install vm2羞福;
npm install uglify-es惕蹄;
npm install js-beautify;
npm install escodegen;
例如使用npm install命令安裝esprima卖陵,輸入后回車遭顶,會提示added 1package from……表示安裝好了,其中黃色的WARN提示可不理會泪蔫。
·最后一步棒旗,反編譯。輸入
Node wuWxapkg.js -d <file>
file是你的.wxapkg文件的地址撩荣。例如铣揉,樓主把該文件放在了D盤,就輸入
node wuWxapkg.js -d D:\_-120314697_33.wxapkg餐曹,然后回車逛拱。
最后去找和.wxapkg文件相同路徑下的同名文件夾,get
如果以上操作全部正確台猴,是可以還原出文件包的朽合!
BONUS:
樓主在這里列出了自己這幾天犯下的錯誤,供各位參考
坑1:cannot find module ‘escodegen’卿吐,這里的’escodegen’可以是任何7個依賴之一旁舰,例如,cannot find mudule ‘uglify-es’嗡官、cannot find mudule‘cssbeautify’、cannot find mudule‘css-tree’毯焕、等衍腥。造成這種錯誤的原因一般是缺少對應的依賴或者依賴安裝位置不正確,重新安裝即可纳猫。
坑2:SyntaxError: Invalid or unexpected token婆咸,一般是格式錯誤,檢查語法格式芜辕。
坑3:提示語法錯誤尚骄,或者Microsoft JScript編譯錯誤,這種就是因為路徑中存在空格(這個也太坑了侵续,哈哈)
坑n:破解過程中可能出現各種各樣的坑和錯誤倔丈,自己解決不了的請聯系樓主!
下篇文章分析分析這個小程序的學習成果状蜗!請期待
以下為參考大神的原文: