1. 程式人生 > >微信小程式 wxapkg 反編譯 獲得微信小遊戲跳一跳原始碼

微信小程式 wxapkg 反編譯 獲得微信小遊戲跳一跳原始碼

前言

昨天 V2EX 上的一篇通過抓包來獲取微信跳一跳原始碼的文章走紅,文章連線點選這裡

我也在通過文章中的方式進行了抓包,但是並未探測到小遊戲的下載連線,可能微信對此已經進行了修復。而且上文中提供的下載連線也顯示為 404 的狀態碼。

雖然抓包未果,但是依然可以從本地將原始碼抽離出來,下面將介紹如何從 Android 手機裡面找到微信下載的小遊戲原始碼

準備工作

  • 一部已經 root 的 Android 手機
  • 電腦上已安裝 Android SDK 並可以使用 adb 命令

需要注意的是必須是已經 root 了的 Android 手機,否則將沒有許可權訪問對應手機的系統資料夾

通過 USB 將手機連線到電腦上,然後執行以下命令

$  adb devices

如果顯示了一下資訊

List of devices attached
71MBBL6228EU	device

說明手機已經連線到電腦上,如顯示未找到 adb 命令,則說明 Android SDK 安裝錯誤或 adb 未新增到電腦 path 中,請自行上網進行相應查閱

手機連線電腦成功後,執行一下命令

$  adb shell
$  su

終端出類似 [email protected]{手機型號} 字首,說明已經進入到 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

程式就會在開發者工具裡執行起來了

參考