手游破解手段介紹及易盾保護方案

手游破解手段介紹及易盾保護方案

來自專欄網易雲安全(易盾)4 人贊了文章

本文來自網易雲社區。

手游已經超過端游,成為市場份額最大的遊戲類型。對應的外掛產業也成長迅速,技術水準越來越高,對市面流行的手游引擎都有比較深入的研究。

現階段如果一款遊戲沒有做任何保護,並且有數據放在本地計算的話,外掛從業者可以快速做出外掛。比較典型的案例就是旅行青蛙,這個遊戲沒有做任何保護,突然火了後,出現了各種功能多樣的破解版。百度搜索破解關鍵詞,結果有300多萬條。

手游破解通常都從如下三個大方向來做:動態破解、靜態破解、協議破解。

一、動態破解

不對包進行修改,而是使用外部工具進行外掛功能。

動態破解主要包含修改器和加速器。

1.修改器

修改器的原理是修改遊戲內存數據,達到秒殺、無敵、倍攻、穿牆等變態技能。

目前最流行的是GameGuard修改器(也稱作GG修改器)。

下圖是使用GG修改器修改三葉草數量的動畫。可以通過修改器把三葉草的數量修改成9999。

除了上面的手動操作,GG修改器還可以使用lua腳本操作,這樣就大大降低了使用門檻,只要花上幾十塊買個腳本就免去了複雜而有難度的重複操作。使用界面如下圖所示:

下圖是某QQ群里售賣的lua腳本

GameGuard修改器除了數據修改功能外,還帶有過遊戲保護的功能。

騰訊自營和聯營的手游統一使用騰訊自己研發的MTP遊戲保護。MTP保護帶有反修改器功能,檢測到修改器後會讓遊戲退出。後來GameGuard修改器進行了版本升級,內置了pass騰訊MTP遊戲保護功能,使得GG修改器能正常使用,並且在官方網站掛出如下視頻:

2.加速器

加速器是比較常見的作弊工具。

同樣拿旅行青蛙來做示例,使用效果如下,可以讓三葉草快速成長。正常情況下,三葉草長滿池子需要幾天,加速後只需要幾秒鐘。

二、靜態破解

也就是端改,玩家常常稱這樣的破解版為科技端。這種破解是通過修改遊戲裡面的文件或者腳本,然後重打包來實現各種功能。

端改常常被拿出來售賣或者工作室內部使用。端改的危害往往比動態破解更大。

現在破解版基本都是在QQ群售賣,只要使用遊戲名+ 「科技」或者」輔助」 作為關鍵詞搜索,就可以搜索到對應遊戲的破解售賣群。

圖1

圖2

圖1是崩壞3的搜索結果,圖2是刺激戰場的搜索結果。這兩個遊戲都有使用遊戲保護,還是存在很多外掛售賣。可見現在的黑灰產的技術能力還是非常強的。

還是以沒有保護的旅行青蛙做為案例,演示如何實現無限三葉草破解版本。

這個遊戲是Unity3d引擎實現,首先使用CSharp反編譯工具(如dnSpy,ilSpy等工具)把如下圖所示的DLL還原成源碼

然後分析源碼,定位到關鍵源碼位置。如下圖所示的獲取三葉草數量的代碼位置。

把源碼修改成直接返回9999:

把修改後的源碼再編譯成DLL,替換原來的DLL,重打包成APK,運行後效果如下圖所示,三葉草數量永久為9999,取之不盡用不之竭。

即使是沒有保護的遊戲,做破解版本還是有一定門檻的,需要一定的技術基礎。不過在市場需求的驅使下,有多個平台APP提供破解版手游下載,如下圖所示的GG大玩家和光環助手。

三、協議破解

一旦遊戲協議被分析出來,可以不再依賴於遊戲本身,可以實現純協議的客戶端。或者是半離線,修改遊戲封包來修改遊戲行為。

如下圖比較熱門二次元的遊戲,使用的是http協議,可以使用Fiddler抓包來分析協議,並且修改協議封包。

這樣的話,就可以搭建代理服務來動態修改封包,實現10倍血量10倍攻擊等效果。相當於半離線。下圖是某論壇提供的免費離線代理。

易盾手游保護針對上述問題的解決方案:

一、動態破解

1. 修改器

通過對遊戲進程的讀寫行為來識別修改器,可通殺所有修改器

2. 加速器

使用底層的方法判斷是否存在加速。所有應用層方法都無法繞過我們的加速檢測。

二、靜態破解

遊戲保護模塊都帶有文件校驗功能,只要有文件被修改了遊戲就不能正常運行,而端改又必須修改文件。

因此破解一般都要先把保護模塊脫掉,使得破解後的遊戲可不再依賴於保護模塊運行。

基於上述原因,我們從兩個角度來做保護

1. 腳本保護

1) Unity3d引擎提供函數級加密功能,並支持腳本在線更新。

2) 其它引擎提供對引擎模塊的加固

2. 資源加密

1) Unity3d引擎,我們提供assetbundle資源加密以及靜態資源加密

所有加解密演算法,都經過我們精心構造和混淆,在確保性能和穩定性的前提下,讓編譯後的代碼難以分析。下面是IDA分析的某個解密演算法的流程圖,其它加解密演算法都是使用類似的方法構造。

三、離線掛

針對離線掛,我們提供了數據簽名功能,客戶端對輸入數據進行簽名,生成一個簽名值。

如果破解者無法分析出簽名演算法,就無法模擬協議也不能篡改數據。

保護的核心在於客戶端實現的簽名演算法在滿足計算速度的同時,混淆要有足夠的強度,使得分析者無法還原成源碼演算法。

除了上述提到的方法,我們還提供如下的保護功能

1. 反地理位置模擬

2. 反模擬器

3. 反模擬點擊

4. 反同步器

5. 防二次打包

6. 文件校驗

7. 存檔加密

8. 手游引擎SO定製化加殼

除了提供這些多樣的保護功能,我們還著力於提升保護的易用性。保護的使用只需要運行一條命令行,將待保護apk做為輸入,即可輸出帶有完整保護功能的APK。整個過程不需要開發做任何對接。

易盾手游保護已經發布一年多,除了公司內部使用外,同時也對公司外部提供服務。目前已經有數十個外部用戶,公司內部也有幾十個手游在使用。

對於外部用戶有三個比較典型的用戶,在這裡做一下分享。

1. 英雄互娛旗下的某沙盒類遊戲,存在很多修改器和加速器

我們給他們配置了反修改器和反加速器選項,並且對腳本做了函數級加密,對U3D Assetbundle資源做了加密。加固版本上線後,遊戲運營反饋用戶外掛舉報立馬減少了99%。使用保護至今已經快一年,還沒有出現過破解版。

2. B站某二次元遊戲,就是上文所說的存在離線掛雲刷的遊戲,後來買了我們的保護。針對他們離線掛的問題,我們專門為他們開發了反離線功能。上線後雲刷功能立馬廢了,並且上線至今沒有人能夠破解出反離線演算法。在反離線功能和腳本函數級加密同時使用的情況下,也沒有出現破解版。


網易雲安全(易盾)提供iOS 應用加固Android 應用加固服務,點擊可免費試用。

本文來自網易雲社區,經作者陳士留授權發布。

原文:手游破解手段介紹及易盾保護方案

了解 網易雲 :

網易雲官網:https://www.163yun.com

網易雲社區:sq.163yun.com/blog

新用戶大禮包:https://www.163yun.com/gift

更多網易研發、產品、運營經驗分享請訪問網易雲社區。


推薦閱讀:

只有極少的玩家在這遊戲里活過了80天,你呢?
手機網遊推薦 益智玩法
每周遊戲周報 - 第221期
穩住別動!穩住別動!高難度無厘頭平衡積木
遊戲新發現(14)——致命框架

TAG:手機遊戲 | 網易雲 | 網路安全 |