更新時(shí)間:2023年07月20日16:57:52
mac版本的微信小程序是沒(méi)有做加密的,可以直接反編譯
反編譯的工具是適用于mac和Windows的,其實(shí)Windows還有其他更好用的工具。
本文是針對(duì)mac
下使用微信的小程序進(jìn)行解密,版本為3.8.1
。
小程序準(zhǔn)備知識(shí)
可以參考:https://www.hackinn.com/index.php/archives/672/
mac版微信版本小于3.8.0的
需要先解密再反編譯
解密工具準(zhǔn)備:https://github.com/TinyNiko/mac_wxapkg_decrypt
解密的步驟可以看文章內(nèi)容,本來(lái)我寫(xiě)出來(lái)了,但是怕大家混淆,所以這部分我就全刪除了。
反編譯見(jiàn)后文。
mac版微信版本大于3.8.0的(新版)
不需要解密,直接反編譯即可!
以下源自于解密工具作者的描述(在此感謝作者提供的工具)
直接反編譯即可!
2.小程序反編譯-針對(duì)3.8.1版本
2.1 反編譯工具下載
原版工具:
https://data.hackinn.com/tools/wxappUnpacker.zip
這個(gè)據(jù)說(shuō)是優(yōu)化版,可能效果更好,但是目前發(fā)現(xiàn)還是有bug的,可能是微信更新了,個(gè)人感覺(jué)暫時(shí)不好用,我自己修改了一點(diǎn)點(diǎn),稍微好用一點(diǎn)了。
2.2 安裝npm
mac
安裝npm
安裝 node
brew install node
配置npm淘寶源
npm config set registry https://registry.npm.taobao.org
npm config set registry https://registry.npm.taobao.org
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen
2.3 小程序相關(guān)準(zhǔn)備工作
- mac版微信:3.8.1 最新版(2023年07月20日16:59:02)
- 關(guān)閉
macos
的SIP
這部分網(wǎng)上教程很多,具體可以搜下,我公眾號(hào)也有,叫做proxychains
的安裝。
-
mac
版微信小程序的位置:
/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/
其中xxx是當(dāng)前機(jī)器的用戶名,當(dāng)前我的機(jī)器用戶名是crow
,合起來(lái)就是:
/Users/crow/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/
可以看到當(dāng)前的目錄:
這個(gè)wxxxxx的值是如何來(lái)的?
在手機(jī)上打開(kāi),可以找到詳情,里面就有的:
此時(shí)我們打開(kāi)文件之后,發(fā)現(xiàn)里面基本是空的:
我們?yōu)榱送暾墨@取源碼,就在原來(lái)的小程序上點(diǎn)點(diǎn)點(diǎn),盡可能的點(diǎn)點(diǎn)點(diǎn):
3.反編譯小程序
在這里我們已經(jīng)有了路徑:
/Users/crow/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wxfe3b722fc1e03b/7/.wxapkg
在這里將.wxapkg
復(fù)制出來(lái),準(zhǔn)備反編譯。
3.1 反編譯注意事項(xiàng)
在這里使用備份的wxappUnpacker進(jìn)行解包:
https://github.com/geilige/wxappUnpacker
當(dāng)檢測(cè)到 wxapkg 為子包時(shí), 添加-s 參數(shù)指定主包源碼路徑即可自動(dòng)將子包的 wxss,wxml,js 解析到主包的對(duì)應(yīng)位置下. 完整流程大致如下:
- 獲取主包和若干子包
- 解包主包 ./bingo.sh testpkg/master-xxx.wxapkg
- 解包子包 ./bingo.sh testpkg/sub-1-xxx.wxapkg -s=…/master-xxx
一般來(lái)說(shuō),主包比較大,子包比較?。ú唤^對(duì))
在使用上面工具的時(shí)候,使用的時(shí)候有報(bào)錯(cuò),繼續(xù)安裝對(duì)應(yīng)模塊試試:npm install uglify-es
在這里使用上面的工具的話,反編譯可能會(huì)報(bào)錯(cuò)的,所以在這里我就以我自己修復(fù)之后的工具來(lái)進(jìn)行反編譯,其實(shí)遇到的問(wèn)題都可以從網(wǎng)上找到解決的方法。
3.2 主包反編譯-無(wú)子包
這種大部分都可以反編譯成功,在這里看下:
打開(kāi)之后,就生成了對(duì)應(yīng)的文件:
此時(shí)反編譯看下:
./bingo.sh /Users/crow/Desktop/Wechat_small/small/.wxapkg
其實(shí)就是./bingo.sh 文件名
在這里輸入文件的路徑進(jìn)行反編譯,成功之后會(huì)生成一個(gè)的目錄文件。
此時(shí)可以看到文件比較完整(mac
和Windows
下反編譯成功的文件可能有差異)
3.3 有子包的反編譯
其實(shí)如果小程序本身很大的話,會(huì)自動(dòng)出現(xiàn)子包,但如果你沒(méi)訪問(wèn)到的話,是不會(huì)全部出現(xiàn)的,這里可以看到一個(gè)購(gòu)物的小程序:
在這里對(duì)主包先解密:
對(duì)主包解密,顯示成功:
在這往上翻翻命令,看看剛剛解密的時(shí)候,里面顯示有多少個(gè)分包:
一共有71
個(gè)分包,但是我們剛剛點(diǎn)來(lái)點(diǎn)去,只有一個(gè)出來(lái),那就對(duì)那個(gè)分包進(jìn)行解密:
具體的命令就是:
./bingo.sh -s=..// /Users/crow/Desktop/Wechat_small/small/_pages_cats_.wxapkg
解密的時(shí)候,該子包會(huì)獨(dú)自生成一個(gè)文件夾1,并且該文件夾的內(nèi)容會(huì)自動(dòng)的補(bǔ)充到主包的2里面去,所以只需要看2就行了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-758584.html
4.總結(jié)
mac
新版微信,直接把那個(gè).wxapkg
拿過(guò)來(lái),解密就行了,但一定要注意解密的時(shí)候,上面寫(xiě)的有無(wú)分包,好好找找。
其實(shí)這部分反編譯很快,大概只需要1分鐘就可以搞定,但是這里面也會(huì)有解密失敗的部分。
后面還有一篇關(guān)于小程序流量抓取的文章,目前網(wǎng)上的很多文章都是不正確的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-758584.html
到了這里,關(guān)于mac版微信小程序反編譯學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!