基於御安全APK加固的遊戲反外掛方案

1、 前言算法

隨着移動互聯網的興起,移動遊戲市場近幾年忽然爆發,收入規模快速增加。
根據第三方數據統計,國內移動遊戲2015年市場規模已達514.6億。

因爲手遊市場強勢興起,並且後續增加勢頭會越發猛烈。火熱的市場後面隱藏的問題也愈來愈多,其中手遊外掛就是一個例子。目前移動遊戲市場上,有多方需求在催促外掛的發展,大量屌絲玩家,想花少許的錢獲得更大快感;競品公司或者惡意玩家,想惡意破壞遊戲正常活動運營。這類外掛會影響到遊戲開發商的收益及衆多正常遊戲玩家的體驗,所以必然須要一種反外掛的手段,來保證遊戲開發商的合法利益。然而一些有實力的公司投入了很多資源來反外掛,雖然也卓有成效,但也大大增長了成本;一些實力相對弱小的公司則沒有能力反外掛,這些公司的遊戲很容易被外掛市場搞垮。就是在這種狀況下,御安全加固平臺推出了一種方便,高效以及成本低的基於APK加固的反外掛方法,來保護好手遊免受外掛軟件的侵擾。安全

2、 外掛種類及原理
移動遊戲上已經出現過大量外掛樣本,根據其特徵能夠分爲如下幾種:
①內存修改
搜索修改遊戲內存數據,利用修改器搜索相應數值,再根據數值變化規律屢次搜索排除定位到相應屬性在內存中的位置,直接修改爲誇張效果值。在Android平臺上較爲主流,有燒餅、葫蘆俠等典型表明.
②時間修改
加快遊戲節奏,節省玩家時間;或者減慢遊戲節奏,減低操做難度。其影響遊戲幀更新頻率,可實現加速過關、減速躲技能等外掛功能.
③資源修改
修改安裝包中關鍵數據配置,修改替換遊戲安裝後的資源文件,破解或修改安裝包資源(例如圖片/音樂),重用遊戲資源或製做廣告版本.
④代碼修改
能夠經過修改客戶端代碼從新打包發佈外掛版本,達到增長收益、去除限制、下降遊戲難度的目的。修改代碼庫文件,直接替換安裝後程序的庫文件,能夠經過hook方式動態修改內存中的執行代碼.
⑤模擬器操做
讓玩家可在PC上運行手遊。PC上的模擬器,目前主要流行的是Android模擬器,其具體產品有TGP、海馬玩、每天等模擬器.
⑥協議修改
用戶修改上傳數據,達到上報虛假數據做弊目的用戶重複上傳獲取收益的消息,達到獲取額外收益的目的用戶上傳不符合條件的消息,達到跳過客戶端限制目的用戶修改協議達到上傳攻擊信息的目的.服務器

3、 反外掛系統
現有的反外掛系統主要分爲終端側反外掛系統以及服務器側反外掛系統。網絡

  • 服務器端防外掛系統性能

①遊戲時間相關校驗。客戶端計時不可信,須要在服務器校驗客戶端上傳的時間參數是否合理,校驗遊戲過程數據和時間之間的關係是否合理(例如里程、時間、速度關係)
②遊戲核心邏輯校驗。每次操做均經過協議上傳,服務器承認後再實際執行操做,每次操做服務器均要進行合理性判斷,且判斷結果實時反饋。
③玩家間數據相互校驗。各玩家的操做通過服務器中轉對其它玩家同步,若是核心邏輯在每一個客戶端單獨計算,各玩家需定時上傳各自遊戲局勢數據,服務器進行對比校驗,若是核心邏輯在部分客戶端計算,其餘玩家需從該客戶端同步局勢數據,服務器須要校驗主邏輯數據是否合理。
④遊戲操做時序相關校驗。部分操做有明確的時序要求,打亂時序可能致使額外收益。服務器端經過對客戶端發送的操做時序進行校驗,來判斷客戶端發送的請求時序是否合理。加密

服務器端防外掛的缺點:
(1)容易致使誤殺
目前不少遊戲的反外掛系統採用範圍性的數值驗證,因爲自己的設計緣由或者弱網絡的緣由,不少時候會形成誤殺。
(2) 服務器端的設計很是複雜
因爲服務器端的數據及流程校驗和遊戲的代碼邏輯息息相關,因此服務器端防外掛的數據以及代碼邏輯須要根據客戶端的代碼邏輯及數據進行設計和開發,這樣會致使服務器端防外掛設計和客戶端的代碼邏輯進行緊耦合。客戶端只要進行代碼邏輯的修改,也有可能致使服務器端的防外掛系統進行修改。
(3)服務器端防外掛功能沒法通用
每一款遊戲都有本身的代碼邏輯以及各類數據,因此服務器端的防外掛功能沒法作到統一標準,對每一款遊戲都使用。每每是隻能針對特定的遊戲進行定製化開發防外掛功能。
(4) 服務器端外掛系統維護成本高
綜上所述,因爲服務端外掛系統的複雜性以及定製化的多樣性,必然致使開發成本以及維護成本不斷增高。另外須要在服務器端進行各類邏輯和數據的校驗,隨着遊戲的增多,系統設備的擴容以及系統的計算資源消耗也會愈來愈大,必然致使硬件成本及數據流量成本的增長。設計

  • 客戶端防外掛系統調試

針對服務器端防外掛系統的不足,御安全加固系統開發出了一種基於客戶端加固的防外掛系統,它是一種基於APK加固和防外掛系統相結合的一種防外掛方案。
御安全APK加固技術主要功能:
①DEX文件保護。
採用分片式按需加載技術,攻擊者沒法在內存中獲取完整的DEX文件,再加上DEX內存分散功能,攻擊者沒法從一片連續的內存中Dump出DEX文件,大大加大了攻擊者獲取DEX的難度
②SO文件保護。
御安全加固保護邏輯,經過源碼級的混淆,採起多種混淆方式,攻擊者沒法逆向其代碼邏輯,另外,基於動態加載的SO加殼技術,也使得攻擊者沒法逆向保護邏輯以及原APK中SO的代碼邏輯。
③資源文件保護。
御安全加固系統,能夠針對APK的Assets,Raw及Res目錄下的全部文件進行加密保護並進行完整性校驗,通過御安全加固系統加固後的APK,資源沒法被篡改,例如沒法增長廣告界面,也沒法盜版APK裏面的資源。能夠很好地保護開發者的知識產權。
④內存保護。
防止經過動態調試的方式對APK進行調試,加固APK在被調試,或者其內存被篡改後,加固APK將自動退出。也能夠防止經過進程調試的方式對加固APK進行進程調試,加固APK被進程調試的時候,加固APK也將自動退出。通過御安全加固系統加固後的APK,能夠防止市面上全部主流的外掛軟件對加固APK進行內存修改,如燒餅修改器,八門神器,叉叉修改器等上十種主流外掛軟件。
⑤防止內存dump。
APK在運行時候,會在內存中釋放所有或者部分源碼,攻擊者能夠在運行時刻利用dump命令把這些源碼導出。御安全加固後的APK,能夠有效防止攻擊者從內存中複製源代碼。
⑥防遊戲加速。
攻擊者或者遊戲玩家,經過市面上的外掛軟件,能夠加快遊戲速度,破壞遊戲平衡,用於加快戰鬥速度或者等待時間等場景。御安全加固後的APK,一旦發現玩家或者攻擊者有加速或者減速遊戲的行爲,APK將自動終止運行。
御安全的總體APK保護方案以及對協議關鍵代碼的保護,能夠防止攻擊者逆向協議的流程或者算法,避免攻擊者對協議進行攻擊,防止外掛軟件經過破解協議的方式,攻擊加固後的遊戲。 code

4、 雲-端結合防外掛攻擊
相對於服務器端的防外掛軟件系統,終端側的防外掛方法也有其弱點,由於攻擊者可以獲得終端側防外掛功能的邏輯實體,儘管咱們對其作了嚴密的保護,可是也不免可能被攻擊者繞過防外掛功能。所以若是御安全加固系統能和服務器端防外掛系統的有效結合,就能夠很好地阻止外掛軟件對加固遊戲的攻擊,從而減小遊戲開發商的損失。另外御安全加固APK,採起一鍵式的保護方式,能夠方便,快捷地爲遊戲開發商提供保護服務器。加固後的APK,兼容性接近100%,加固後的APK運行Crash率控制在0.02%之內。啓動速度以及其它性能影響,對用戶無任何感知。遊戲

相關文章
相關標籤/搜索