Damocles:Cradles 遊戲分析報告
作者:Damocles
一、概要
Cradles 於 11.15 日開放下載,Damocles 團隊於11.16日對該遊戲進行深入的安全分析,通過分析發現該遊戲有大量Debug信息未刪去,從Debug日誌推斷該遊戲開發團隊為中國團隊。並且在測試過程中發現,該遊戲並未進行任何的安全保護,且遊戲通信協議部分使用開源引擎,並且對於有些邏輯判斷過於不嚴謹,不推薦用戶去遊玩體驗。
二、遊戲背景
進行評估的遊戲版本:20231115
遊戲類型\&遊戲引擎:MMORPG,Unity2021.3.x
遊戲玩法可能存在的問題:
非法移動(通過RPC進行惡意封包進行瞬移,加速等操作)
加速(遊戲內大世界時間, UE框架下的時間函數)
自瞄/自動鎖定
無敵
無限體力
挖礦加速
三、遊戲安全性分析
遊戲代碼保護:
分析過程:
1.由於不同的引擎有不同的分析模式,所以在獲取到遊戲EXE後首先需要確定遊戲使用的引擎,通過對遊戲基礎信息識別我們可以確定該遊戲是使用Unity21.3.x進行開發。
2.通過瀏覽遊戲釋放的文件,可以確定遊戲採用Mono機制,並不是採用iL2Cpp的模式進行開發。採用這種方式開發的遊戲,整體的安全性會更差,分析更簡單。
並且該遊戲使用的協議框架是KBEngine。
因此可以通過Github等開源庫獲取到KBEngine的源碼,以及一些公開的資料,之後便可以加快遊戲分析的速度。
分析結論:
Cradles在遊戲代碼保護方面得分為0,毫無保護。在傳統遊戲中,往往會採用定制加密,加殼等方式對源碼進行保護,並且傳統遊戲也很少會採用mono模式進行編譯。由於Cradles並沒有健全的遊戲基礎代碼保護並且採用過時的編譯技術,導致惡意玩家分析代碼的門檻與成本都很低,如果有外掛出現,對正常玩家來是極度不公平,在玩家可以自由決鬥的區域,作惡玩家更容易打敗對手。
遊戲基礎反作弊:
分析過程:
1.在基礎反作弊檢測方面,我們主要從兩個方面進行測試,一個是遊戲是否存在反調試,另一個是遊戲是否存在讀寫保護。
2.在遊戲打開狀態下使用CE進行附加,並且對通用函數進行下斷點,發現遊戲並沒有退出,或者提示
3.通過CE對修改遊戲內的stamina和HP進行修改,發現可以生效並且遊戲並沒有進行彈窗或者提示。(修改stamina是實現無限體力/藍量,HP鎖定可以在10s內有效)
分析結論:
1.Cradles在反作弊能力方面得分為0,如果存在惡意用戶可以任意作弊。
2.只測試反調試和讀寫保護兩個方面的原因是對於一塊外掛來說,找數據與實現功能只需要通過調試和讀寫就可以實現。如果最基礎的兩個保護能力都缺失的話,那麼一些注入、hook等檢測也毫無意義。
遊戲邏輯問題
分析過程:
對於採用mono方式編譯的MMORPG遊戲來說,直接修改數據原則上是收益很低,但是在我們測試中發現,對於一些數據,如血量、體力等修改是可以生效的,其中血量修改後在9s內有效,超過時間則會無法攻擊怪物,猜測該點在伺服器有傷害時間限制。體力修改則可以長時間生效,猜測該點在伺服器並未做任何判斷,理由是:在本地角色體力耗尽時,可以通過暫停運動進行體力恢復操作,如果本地可以恢復,那麼對於遊戲來說則可以省去伺服器校驗的步驟。
體力更新邏輯:
血量更新邏輯:
並且在Avatar類中有很多與人物相關的屬性,這部分屬性中應該還存在其他可以操作的點。
分析結論:
1.Cradles的整體遊戲邏輯安全問題很嚴重,尤其是該遊戲是涉及強制PVP模式的,外掛研發門檻低,收益高,在研發出成型外掛後,完全可以實現單方面虐殺。
2.缺乏對遊戲數據的感知,以及對遊戲內其他易受攻擊的點的檢測,同時由於使用的是開源引擎,其協議屬於完全開放狀態,對於存在挖礦的遊戲來說,這種行為的風險性極高。
遊戲協議分析
Cradles採用的是KBEngine引擎作為協議基礎,關於該引擎網絡上有現成的資料可供參考。
參考資料:
1、KBEngine技術總覽
2、KBEngine MMORPG Demo
3、KBEngine unity3d plugins
WEB3安全分析:
由於目前Cradles的代幣並未上線,所以WEB3方面的分析暫緩,並且由於挖礦相關的協議完全暴露,用戶挖礦數量對於遊戲來說只是暫存的數字而已,所以該部分並不展開分析
關於Damocles
Damocles labs 是成立於2023年的安全團隊,專注於Web3行業的安全,業務內容包括:合約代碼審計,業務代碼審計,滲透測試,GameFi代碼審計,GameFi漏洞挖掘,GameFi外掛分析,GameFi反作弊。
我們會在Web3安全行業持續發力,並且盡可能多的輸出分析報告,提升項目方和用戶對GameFi安全的感知度,以及促進行業的安全發展。