手游破解手段介紹及易盾保護方案
來自專欄網易雲安全(易盾)4 人贊了文章
本文來自網易雲社區。
手游已經超過端游,成為市場份額最大的遊戲類型。對應的外掛產業也成長迅速,技術水準越來越高,對市面流行的手游引擎都有比較深入的研究。
現階段如果一款遊戲沒有做任何保護,並且有數據放在本地計算的話,外掛從業者可以快速做出外掛。比較典型的案例就是旅行青蛙,這個遊戲沒有做任何保護,突然火了後,出現了各種功能多樣的破解版。百度搜索破解關鍵詞,結果有300多萬條。
手游破解通常都從如下三個大方向來做:動態破解、靜態破解、協議破解。
一、動態破解
不對包進行修改,而是使用外部工具進行外掛功能。
動態破解主要包含修改器和加速器。
1.修改器
修改器的原理是修改遊戲內存數據,達到秒殺、無敵、倍攻、穿牆等變態技能。
目前最流行的是GameGuard修改器(也稱作GG修改器)。
下圖是使用GG修改器修改三葉草數量的動畫。可以通過修改器把三葉草的數量修改成9999。
除了上面的手動操作,GG修改器還可以使用lua腳本操作,這樣就大大降低了使用門檻,只要花上幾十塊買個腳本就免去了複雜而有難度的重複操作。使用界面如下圖所示:
下圖是某QQ群里售賣的lua腳本GameGuard修改器除了數據修改功能外,還帶有過遊戲保護的功能。騰訊自營和聯營的手游統一使用騰訊自己研發的MTP遊戲保護。MTP保護帶有反修改器功能,檢測到修改器後會讓遊戲退出。後來GameGuard修改器進行了版本升級,內置了pass騰訊MTP遊戲保護功能,使得GG修改器能正常使用,並且在官方網站掛出如下視頻:
2.加速器
加速器是比較常見的作弊工具。
同樣拿旅行青蛙來做示例,使用效果如下,可以讓三葉草快速成長。正常情況下,三葉草長滿池子需要幾天,加速後只需要幾秒鐘。
二、靜態破解也就是端改,玩家常常稱這樣的破解版為科技端。這種破解是通過修改遊戲裡面的文件或者腳本,然後重打包來實現各種功能。
端改常常被拿出來售賣或者工作室內部使用。端改的危害往往比動態破解更大。
現在破解版基本都是在QQ群售賣,只要使用遊戲名+ 「科技」或者」輔助」 作為關鍵詞搜索,就可以搜索到對應遊戲的破解售賣群。
還是以沒有保護的旅行青蛙做為案例,演示如何實現無限三葉草破解版本。
這個遊戲是Unity3d引擎實現,首先使用CSharp反編譯工具(如dnSpy,ilSpy等工具)把如下圖所示的DLL還原成源碼
然後分析源碼,定位到關鍵源碼位置。如下圖所示的獲取三葉草數量的代碼位置。三、協議破解
一旦遊戲協議被分析出來,可以不再依賴於遊戲本身,可以實現純協議的客戶端。或者是半離線,修改遊戲封包來修改遊戲行為。
如下圖比較熱門二次元的遊戲,使用的是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
網易雲社區:https://sq.163yun.com/blog
新用戶大禮包:https://www.163yun.com/gift
更多網易研發、產品、運營經驗分享請訪問網易雲社區。
推薦閱讀:
※只有極少的玩家在這遊戲里活過了80天,你呢?
※手機網遊推薦 益智玩法
※每周遊戲周報 - 第221期
※穩住別動!穩住別動!高難度無厘頭平衡積木
※遊戲新發現(14)——致命框架