在昨天發(fā)過的 如何獲得微信小游戲跳一跳源碼 的文章中,記錄了我個人在獲取微信小游戲跳一跳源碼中的實踐。
跟大家在交流中很多人說源碼是壓縮過的可讀性很差,拿到源碼也沒有意義。但是其實只要將代碼格式化后,代碼的可讀性還是很高的,而且通過微信開發(fā)工具斷點調(diào)試,一些邏輯還是很容易梳理清楚的。
上圖就是通過斷點調(diào)試找到了最終提交 score 的網(wǎng)絡(luò)請求
另外問的最多的就是目前小游戲無法進行網(wǎng)絡(luò)請求的問題,如下圖
這是因為不管是小游戲還是小程序,網(wǎng)絡(luò)請求都是受到限制的,需要在微信公眾平臺中注冊合法的服務(wù)器域名,如下圖所示
但是目前小游戲還沒有開放注冊,所以是無法進行服務(wù)器域名配置的,而微信開發(fā)工具提供的測試小游戲 APP ID 是 wx6ac3f5090a6b99c5 是沒有配置任何的服務(wù)器域名的
但是在萬能的抓包工具Charles 幫助下,是可以打破這個限制的
對 Charles 不太了解的可以參考一下這篇文章
首先打開 Charles 并運行 Charles 對本地電腦進行 HTTPS 抓包,因為對 HTTPS 進行抓包需要安裝證書,具體的操作步驟請參考Charles 從入門到精通
之后打開微信開發(fā)工具,然后新建一個項目,使用 wx6ac3f5090a6b99c5 做為 APP ID,這是微信默認小游戲測試開發(fā) ID,然后新建一個空的小游戲項目,點擊確定之后,查看 Charles 的控制臺
找到以下的訪問請求
https://servicewechat.com/wxa-dev-logic/batchgetappattr
查看該請求的返回包體,會發(fā)現(xiàn)默認返回的服務(wù)器域名是空數(shù)組
在這里只要使用 Charles 的 Map 功能在請求返回的 reponse 信息里面,加入我們想訪問的服務(wù)器域名,就可以突破微信開發(fā)工具對小游戲網(wǎng)絡(luò)請求的限制了
在 Charles 的菜單中,選擇 “Tools”-> “Map Local” 即可進入到相應(yīng)功能的設(shè)置頁面
然后在對應(yīng)配置選項中輸入以下信息,本地的 reponse 文件可以參考 這里
完成以上配置之后,退出微信開發(fā)者工具,再打開剛才新建立的項目,就會發(fā)現(xiàn)此時的項目設(shè)置里面已經(jīng)有了我們想要添加的服務(wù)器域名了
而且調(diào)試小游戲的網(wǎng)絡(luò)模塊,發(fā)現(xiàn)網(wǎng)絡(luò)是可以進行的訪問的
目前小游戲還沒有開放注冊,但是可以先通過這種方式突破小游戲?qū)τ诰W(wǎng)絡(luò)請求的訪問限制,提前進行開發(fā)。