前言
昨天 V2EX 上的一篇通過抓包來獲取微信跳一跳原始碼的文章走紅,文章連線點選這裡
我也在通過文章中的方式進行了抓包,但是並未探測到小遊戲的下載連線,可能微信對此已經進行了修復。而且上文中提供的下載連線也顯示為 404 的狀態碼。
雖然抓包未果,但是依然可以從本地將原始碼抽離出來,下面將介紹如何從 Android 手機裡面找到微信下載的小遊戲原始碼
準備工作
- 一部已經 root 的 Android 手機
- 安裝微信 6.6.1 版本的 apk
- 電腦上已安裝 Android SDK 並可以使用 adb 命令
需要注意的是必須是已經 root 了的 Android 手機,否則將沒有許可權訪問對應手機的系統資料夾
通過 USB 將手機連線到電腦上,然後執行以下命令
$ adb devices
複製程式碼
如果顯示了一下資訊
List of devices attached
71MBBL6228EU device
複製程式碼
說明手機已經連線到電腦上,如顯示未找到 adb
命令,則說明 Android SDK 安裝錯誤或 adb
未新增到電腦 path
中,請自行上網進行相應查閱
手機連線電腦成功後,執行一下命令
$ adb shell
$ su
複製程式碼
終端出類似 root@{手機型號}
字首,說明已經進入到 root
模式下
$ cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
複製程式碼
{User} 為當前使用者的使用者名稱,類似於 1ed**********c514a18
然後當前目錄就是微信用於存放小程式和小遊戲下載包的位置
$ ls
_-791877121_3.wxapkg
_1079392110_5.wxapkg
_1079392110_5.wxapkg_xdir
_1123949441_92.wxapkg
_576754010_1.wxapkg
複製程式碼
以上是我的微信中所下載過的小程式和小遊戲原始碼
因為 /data
目錄為系統級目錄,無法直接將其進行復制,需要重新掛載為可操作模式
$ mount -o remount,rw /data
複製程式碼
此時就可以將當前目錄下的檔案拷貝到 sdcard 中
$ cp /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_1079392110_5.wxapkg /mnt/sdcard
複製程式碼
然後將 _1079392110_5.wxapkg
檔案拷貝到電腦裡,通過該指令碼進行解壓後,即為其原始碼
編譯原始碼
通過微信小遊戲開發工具新建一個空白的小程式或者小遊戲的專案,主要不要選擇快速啟動模板
然後把剛才解壓出來的原始碼複製到剛剛建立的專案目錄中,開發工具會提示編譯錯誤,這時只要在專案中新建一個 game.json
檔案,並在檔案裡寫入以下程式碼
{
"deviceOrientation" : "portrait"
}
複製程式碼
然後將開發工具的除錯基礎庫改為 game
程式就會在開發者工具裡執行起來了