如何反編譯UNITY遊戲?

更新於 發佈於 閱讀時間約 4 分鐘
raw-image

在撰寫這篇文章之前,我曾認為Unity的遊戲比使用JavaScript編寫的網頁遊戲更安全。因為編譯出的遊戲apk檔案是以二進制形式儲存,相較於使用純文字JavaScript程式碼建立的遊戲,要逆向工程遊戲應該非常困難。

然而,在進行了一些實驗後,我發現我的理論是錯誤的,因此決定寫下這篇教學文章。

通過使用IL2CPP作為腳本後端來編譯遊戲,可以輕鬆從apk檔案中逆向還原出C#源代碼,這讓惡意駭客有能力查看您在遊戲中實現了哪些類、方法、函數、屬性,甚至是邏輯。

在本教學中,您將了解在Android平台上逆向工程基於Unity的遊戲有多容易。

這是何時發生的?

自2019年8月1日起,Google要求所有遊戲支持64位架構,Unity開發者需要在構建和發布遊戲到Google Play商店時啟用IL2CPP腳本後端功能。 這可能存在公開發現遊戲代碼的風險。

參考資料:https://developer.android.com/distribute/best-practices/develop/64-bit

使用Unity的IL2CPP模式編譯Android遊戲

選擇IL2CPP的後台模式來編譯遊戲

raw-image

反組譯 apk 檔案

  • 下載和設定 apktool
  • 執行apktool指令來解壓縮 apk 檔案
apktool d -r -s [your game].apk
  • 你可看到解出來的檔案如下
raw-image

/Assets/ : 包含美術和聲音文件,

/lib/arm64-v8a/libil2cpp.so: 包含遊戲代碼

Assets/bin/data/Managed/Metadata/global-metadata.dat: 包含ill2cpp.so中的類名、屬性、字符串映射表。


逆向工程DLL文件

  • 下載 Il2CppDumper
  • 將global-metadata.dat和libil2cpp.so複製到ll2CppDumper-v6.6.2文件夾中
cp Assets/bin/data/Managed/Metadata/global-metadata.dat to ll2CppDumper-v6.6.2
cp lib/armeabi-v7a/libil2cpp.so ll2CppDumper-v6.6.2

執行Il2CppDumper.exe並選擇global-metadata.dat 和 libil2cpp.so檔案

raw-image

你可看到會產生出一個DummyDll檔案目錄

raw-image

下載 dnSpy

使用dnSpy打開DummyDLL中的Assembly-CSharp.dll

  • Assembly-CSharp.dll包含您的遊戲源代碼和相關庫文件。
  • 這個工具讓您查看公開的代碼和類別。


總結

在本教學中,您學到了只要您熟悉一些工具,逆向工程Unity Android遊戲是件非常容易的事。

接下來,我將會分享一系列文章。關於如何保護您的Unity遊戲免受黑客攻擊和其他主題。

朋友們,如果您喜歡這篇文章,請給按點👏來支持一下。

謝謝您的閱讀!


原文發佈於 Game Tech Tutorial

留言
avatar-img
留言分享你的想法!
avatar-img
遊戲技術部落格與生活筆記
3會員
5內容數
分享技術文章解決問題及生活點滴。技術包括雲端技術(AWS, GCP, Azure)的實戰經驗、雲端證照考試指南、Unity遊戲開發、DevOps、SDK,手機遊戲和應用程式及網站開發。
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
Steam上的遊戲製作工具那麼多,到底哪個比較好用呢? 我只能說,每個人的能力和想製作的遊戲類型都不同,適合的工具當然也不會一樣,只能你自己去選擇最適合的。 雖然沒有辦法推薦最適合你的,但可以告訴你避開地雷工具的訣竅!
Thumbnail
Steam上的遊戲製作工具那麼多,到底哪個比較好用呢? 我只能說,每個人的能力和想製作的遊戲類型都不同,適合的工具當然也不會一樣,只能你自己去選擇最適合的。 雖然沒有辦法推薦最適合你的,但可以告訴你避開地雷工具的訣竅!
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
在撰寫這篇文章之前,我曾認為Unity的遊戲比使用JavaScript編寫的網頁遊戲更安全。因為編譯出的遊戲apk檔案是以二進制形式儲存,相較於使用純文字JavaScript程式碼建立的遊戲,要逆向工程遊戲應該非常困難。 然而,在進行了一些實驗後,我發現我的理論是錯誤的,因此決定寫下這篇教學文章。
Thumbnail
在撰寫這篇文章之前,我曾認為Unity的遊戲比使用JavaScript編寫的網頁遊戲更安全。因為編譯出的遊戲apk檔案是以二進制形式儲存,相較於使用純文字JavaScript程式碼建立的遊戲,要逆向工程遊戲應該非常困難。 然而,在進行了一些實驗後,我發現我的理論是錯誤的,因此決定寫下這篇教學文章。
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
由於僅顯示文字,因此即使不是顯示版本也可以使用。
Thumbnail
由於僅顯示文字,因此即使不是顯示版本也可以使用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News