伴隨著手機便利性的提高,手遊獲得越來越多的遊戲玩家青睞。
龐大手遊使用者群體之中混雜著部分“作弊使用者”,他們既影響其他玩家的體驗,也侵害了遊戲開發商的利益。其背後的外掛開發者通常以低成本的方式,摧殘著遊戲的壽命,並從中牟取非法利益。更有甚者透過借正規公司渠道販賣VIP、廣告等服務獲取違法利益。
圖1:大量利用外掛進行牟利
遊戲開發商為了保護自身權益,需要快速應對並給出最佳解決方案。為了保障相容性、使用者體驗等細節,開發人員需要做大量修改以應對外掛和破解,但這種修改大部分情況下不能及時完成,對於遊戲開發商來講,修改時間越長意味著損失越大。
下面介紹幾種通用性比較高、外掛開發者常用的作弊方式。
由於不同引擎的特性,很多遊戲受到不同層面的攻擊:
一、修改器:
修改器具有通用性,透過讀/寫遊戲記憶體,對於遊戲內部的敏感資料進行非法獲取,來達到某一類效果:例如無敵、無限金幣、透視、無限CD、修改人物屬性等,嚴重影響了遊戲平衡。常見的修改器有:GG修改器、燒餅修改器、八門神器、葫蘆俠等。
圖2:GG修改器修改記憶體屬性作弊
雖然修改器五花八門、但是其原理通常是採用以下方式進行實現:
1. 透過核心提供的函式讀/寫記憶體
2. ptrace附加並除錯程式
圖3:某修改器透過ptrace讀寫記憶體流程
3. 使用read/write函式讀寫/proc/pid/mem
4. 透過多種方式注入so到遊戲程式讀/寫記憶體
圖4:某修改器透過注入so實現讀寫記憶體等功能
二、加速器:
加速器也具有通用性,遊戲開發商通常透過使用時間函式來進行相關判斷。透過加快或者減慢時間,來達到某一類的效果,例如:體力恢復、競速類遊戲、技能CD等,這類操作嚴重影響了遊戲平衡。常見的加速器有:GG修改器(含有加速功能)、燒餅加速器、叉叉加速器等。
圖5:GG修改器修改時間進行加速作弊
下面列舉了不同情況下實現加速器的原理:
1. 通用方式:劫持gettimeofday,clock_gettime等時間函式。
圖6:某加速器劫持gettimeofday加速
2. U3D引擎:呼叫U3D引擎提供的函式直接設定時間倍率實現。
3. Cocos2D引擎:修改Cocos2D引擎提供的函式實現。
三、虛擬空間:
通常修改器和加速器在使用的過程中需要更高的Root許可權以實現對遊戲程式進行操作。虛擬空間的出現解決了這一些問題,他能夠使遊戲程式和外掛程式隸屬於同一個使用者空間,並直接對遊戲進行非法操作,其需要代理系統服務等一類的操作,但這一類操作能夠被主流遊戲安全廠商所檢測。
下面展示了虛擬空間被外掛開發者所利用,實現手機免root也能夠使用外掛的方式。
圖7:在多開器中執行作弊軟體免Root執行
四、修改程式碼邏輯重打包:
由於遊戲引擎各不相同,遊戲程式碼邏輯存在於不同位置,針對不同遊戲需要不同的處理方式。
1. mono
mono是Unity執行dll指令碼十分重要的元件,而dll指令碼儲存在 asset/bin/data/managed目錄下,外掛分析者能夠直接反編譯Assembly-CSharp.dll修改程式碼邏輯進行破解,達到免費購買、增加傷害、攻擊加速等非法功能。
圖8:某破解者公佈的破解某遊戲Assembly-CSharp.dll細節
圖9:破解者破解後的效果
2. il2cpp
il2cpp是Unity另一種執行遊戲程式碼邏輯的方式,這種方式與mono的不同之處在於它將dll中的IL指令在編譯的過程中翻譯成cpp。並編譯成so,執行遊戲的程式碼邏輯。這種遊戲引擎的方式的確增加了破解者的破解難度,但仍然很容易被攻破。修改libil2cpp.so的程式碼邏輯同樣也能實現非法功能。
圖10:某破解者公佈的破解遊戲libil2cpp.so方法
3. cocos2d
針對cocos2d的引擎,其程式碼核心邏輯主要存在於lua程式碼中,遊戲開發商如果使用不經過任何保護的cocos2d引擎,則等於直接將原始碼暴露給破解者,破解者能夠很容易的破解遊戲邏輯功能。
圖11:某破解者直接攻擊引擎獲取遊戲資源
更多的作弊方式由於篇幅原因也就不再一一列舉(如:重打包修改資原始檔、注入外掛功能指令碼等)。
透過上述作弊方式的介紹,相信各位也意識到,遊戲廠商想要肅清外掛,保證遊戲玩家體驗,考慮接入主流遊戲安全廠商是一個明智和必要的選擇。
網易易盾的手遊反外掛系統結合網易多年遊戲安全實戰積累,圍繞遊戲行業常見安全風險,提供一站式全生命週期手遊解決方案。
易盾手遊保護使用深度研究行為檢測的方式,不需要使用黑名單,即使是新修改器、加速器,或者是變種,都可以即時檢測。
目前獨家提供U3D函式級加密功能。透過指令碼加密組合檔案校驗,防二次打包等功能,進行全方位破解防護。提供最高可壓80%的壓縮服務,同時支援Android和iOS。易盾手遊保護同時支援對U3D及Cocos資源進行加密,獨家研發的U3D資源加密還支援線上更新。
除了上述比較大的功能點,易盾手遊保護還提供防Xposed、防多開器、反雲真機、反地理位置模擬、防模擬器、防二次打包、防抓包、防VPN、防離線、存檔加密、檔案校驗等十多個功能。