本文來自網易雲社區。android
手遊已經超過端遊,成爲市場份額最大的遊戲類型。對應的外掛產業也成長迅速,技術水準愈來愈高,對市面流行的手遊引擎都有比較深刻的研究。ios
現階段若是一款遊戲沒有作任何保護,而且有數據放在本地計算的話,外掛從業者能夠快速作出外掛。比較典型的案例就是旅行青蛙,這個遊戲沒有作任何保護,忽然火了後,出現了各類功能多樣的破解版。百度搜索破解關鍵詞,結果有300多萬條。算法
手遊破解一般都從以下三個大方向來作:動態破解、靜態破解、協議破解。
1、動態破解安全
不對包進行修改,而是使用外部工具進行外掛功能。函數
動態破解主要包含修改器和加速器。工具
1.修改器性能
修改器的原理是修改遊戲內存數據,達到秒殺、無敵、倍攻、穿牆等變態技能。動畫
目前最流行的是GameGuard修改器(也稱做GG修改器)。網站
下圖是使用GG修改器修改三葉草數量的動畫。能夠經過修改器把三葉草的數量修改爲9999。
加密
除了上面的手動操做,GG修改器還可使用lua腳本操做,這樣就大大下降了使用門檻,只要花上幾十塊買個腳本就免去了複雜而有難度的重複操做。使用界面以下圖所示:
下圖是某QQ羣裏售賣的lua腳本
GameGuard修改器除了數據修改功能外,還帶有過遊戲保護的功能。
騰訊自營和聯營的手遊統一使用騰訊本身研發的MTP遊戲保護。MTP保護帶有反修改器功能,檢測到修改器後會讓遊戲退出。後來GameGuard修改器進行了版本升級,內置了pass騰訊MTP遊戲保護功能,使得GG修改器能正常使用,而且在官方網站掛出以下視頻:
2.加速器
加速器是比較常見的做弊工具。
一樣拿旅行青蛙來作示例,使用效果以下,可讓三葉草快速成長。正常狀況下,三葉草長滿池子須要幾天,加速後只須要幾秒鐘。
2、靜態破解
也就是端改,玩家經常稱這樣的破解版爲科技端。這種破解是經過修改遊戲裏面的文件或者腳本,而後重打包來實現各類功能。
端改經常被拿出來售賣或者工做室內部使用。端改的危害每每比動態破解更大。
如今破解版基本都是在QQ羣售賣,只要使用遊戲名+ 「科技」或者」輔助」 做爲關鍵詞搜索,就能夠搜索到對應遊戲的破解售賣羣。
圖1
圖2
圖1是崩壞3的搜索結果,圖2是刺激戰場的搜索結果。這兩個遊戲都有使用遊戲保護,仍是存在不少外掛售賣。可見如今的黑灰產的技術能力仍是很是強的。
仍是以沒有保護的旅行青蛙作爲案例,演示如何實現無限三葉草破解版本。
這個遊戲是Unity3d引擎實現,首先使用CSharp反編譯工具(如dnSpy,ilSpy等工具)把以下圖所示的DLL還原成源碼
而後分析源碼,定位到關鍵源碼位置。以下圖所示的獲取三葉草數量的代碼位置。
把源碼修改爲直接返回9999:
把修改後的源碼再編譯成DLL,替換原來的DLL,重打包成APK,運行後效果以下圖所示,三葉草數量永久爲9999,取之不盡用不之竭。
即便是沒有保護的遊戲,作破解版本仍是有必定門檻的,須要必定的技術基礎。不過在市場需求的驅使下,有多個平臺APP提供破解版手游下載,以下圖所示的GG大玩家和光環助手。
3、協議破解
一旦遊戲協議被分析出來,能夠再也不依賴於遊戲自己,能夠實現純協議的客戶端。或者是半脫機,修改遊戲封包來修改遊戲行爲。
以下圖比較熱門二次元的遊戲,使用的是http協議,可使用Fiddler抓包來分析協議,而且修改協議封包。
這樣的話,就能夠搭建代理服務來動態修改封包,實現10倍血量10倍攻擊等效果。至關於半脫機。下圖是某論壇提供的免費脫機代理。
易盾手遊保護針對上述問題的解決方案:
1、動態破解
1. 修改器
經過對遊戲進程的讀寫行爲來識別修改器,可通殺全部修改器
2. 加速器
使用底層的方法判斷是否存在加速。全部應用層方法都沒法繞過咱們的加速檢測。
2、靜態破解
遊戲保護模塊都帶有文件校驗功能,只要有文件被修改了遊戲就不能正常運行,而端改又必須修改文件。
所以破解通常都要先把保護模塊脫掉,使得破解後的遊戲可再也不依賴於保護模塊運行。
基於上述緣由,咱們從兩個角度來作保護
1. 腳本保護
1) Unity3d引擎提供函數級加密功能,並支持腳本在線更新。
2) 其它引擎提供對引擎模塊的加固
2. 資源加密
1) Unity3d引擎,咱們提供assetbundle資源加密以及靜態資源加密
全部加解密算法,都通過咱們精心構造和混淆,在確保性能和穩定性的前提下,讓編譯後的代碼難以分析。下面是IDA分析的某個解密算法的流程圖,其它加解密算法都是使用相似的方法構造。
3、脫機掛
針對脫機掛,咱們提供了數據簽名功能,客戶端對輸入數據進行簽名,生成一個簽名值。
若是破解者沒法分析出簽名算法,就沒法模擬協議也不能篡改數據。
保護的核心在於客戶端實現的簽名算法在知足計算速度的同時,混淆要有足夠的強度,使得分析者沒法還原成源碼算法。
除了上述提到的方法,咱們還提供以下的保護功能
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
更多網易研發、產品、運營經驗分享請訪問網易雲社區。