最近在學習微信小程序開發,半個月學習下來,很想實戰一下踩踩坑,于是就仿寫了一個滴滴他們家的青桔單車小程序的前端實現,過程一言難盡,差不多兩周時間過去了,發現小程序的坑遠比想象的要多的多!!在實際練手中,完全是黑盒的,看到人家上線的小程序的效果,純靠推測,部分效果在絞盡腦汁后能做出大致的實現,但是有些細節,費勁全力都沒能做出來。很想一窺源碼,查看究竟,看看大廠的前端大神們是如何規避了小程序的各種奇葩的坑。
于是就想到獲取到小程序地源文件,然后再對其進行反編譯還原為源代碼,來作為學習參考。我百度了各種關于小程序地反編譯教程,但是感覺都不太適合像我這樣地初學小白,踩了挺多坑。在這里把我重新簡化好的,快速地獲取一個微信小程序源碼的方式記錄下來。
xxxxx.wxapkg
先來想想一個很簡單的問題,小程序的源文件存放在哪?
服務器
上獲取到,但是我們應該可以從手機本地
找到到已經下載過的小程序源文件/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進制字符串文件夾}}/appbrand/pkg/
xxxxxxx.wxapkg
類型的文件,這些就是微信小程序的包qwerty472123
大神寫的node.js版本的,當然也有其它版本的,這里我只是簡單地用node.js版本舉例夜神模擬器
,用來獲取小程序源文件.wxapkg
安卓
或者iPhone
都要要用到第三方的文件管理器,比如:RE文件管理器
,并且安卓需要取得root權限,而蘋果手機肯定是要越獄的,且iphone的越獄難度>>安卓獲取root,不管越獄還是root,這都太費勁,當然有能力的同學可以直接從手機上來操作,但是這里不推薦從真機上獲取
。不用越獄,不用root,使用電腦端的安卓模擬器來獲取是一個非常簡單快捷且萬能的獲取方式,具體步驟如下:
QQ
、微信
、RE管理器
QQ
、微信
在模擬器自帶的應用商店里搜索下載安裝即可RE管理器
的下載地址:pan.baidu.com/s/1PPBx08rN…夜神模擬器
舉例RE管理器
順利的獲取到ROOT權限/data/data/com.tencent.mm/MicroMsg/{{一串32位的16進制字符串文件夾}}/appbrand/pkg/
我的電腦
_163200311_32.wxapkg
已經解壓到了D盤根目錄下,那么就輸出命令node .wuWxapkg.js D:_163200311_32.wxapkg然后在微信開發者工具新增項目即可打開
至此我們就通過非常簡單的方式獲取到了一個想要的小程序源文件,并對齊進行了反編譯還原 以后想要再反編譯其他的小程序,非常快速,真的只需要兩步
使用此方法,絕大部分的小程序都能正常反編譯出來,但是也會有一些特殊的情況,具體可以查看qwerty472123
大神的readme文件
.apk 之類的文件反編譯非常困難,而小程序竟可以如此輕松隨意地被獲取到源碼,根源在于小程序的開發團隊并沒有對小程序的執行文件進行有效的保護,也就是加密,所以我們才能使用別人寫好的腳本直接進行反編譯,其過程類似于解壓。
實際上,小程序只是很簡單的將圖片、js和json文件壓在一起,而壓制的過程就是Wxml -> Html、 Wxml -> JS、Wxss -> Css,轉換后文件二進制格式跟后綴名為wx二進制格式完全一致。
上線的源代碼能如此簡單的被獲取到,不得不說小程序的源碼安全存在很大的隱患,這一點很多開發者應該也知道,所以發現有些小程序會將重要的js邏輯代碼柔在一個js文件中,這樣,即使被獲取了源碼,也不是很容易讀懂,但是任然避免不了被窺視的問題。 小程序作為微信生態內的新生力量,不僅被官方,也被很多開發者和內容創業者寄予厚望,處于對代碼的安全性的考慮,這個漏洞遲早有一天會被修復(封掉)的。
所以這種這里介紹的獲取小程序源碼的方法,應該是不會太長久的。
作者:行無忌鏈接:只需兩步獲取任何微信小程序源碼-實戰教程-小程序社區-微信小程序-微信小程序開發社區-小程序開發論壇-微信小程序聯盟著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。