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

 

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

 

一、 前言

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

 

二、 外掛種類及原理

移動遊戲上已經出現過大量外掛樣本,根據其特徵可以分爲以下幾種:

①內存修改。

搜索修改遊戲內存數據,利用修改器搜索相應數值,再根據數值變化規律多次搜索排除定位到相應屬性在內存中的位置,直接修改成誇張效果值。在Android平臺上較爲主流,有燒餅、葫蘆俠等典型代表.

②時間修改

加快遊戲節奏,節省玩家時間;或者減慢遊戲節奏,減低操作難度。其影響遊戲幀更新頻率,可實現加速過關、減速躲技能等外掛功能.

③資源修改

修改安裝包中關鍵數據配置,修改替換遊戲安裝後的資源文件,破解或修改安裝包資源(例如圖片/音樂),重用遊戲資源或製作廣告版本.

④代碼修改

可以通過修改客戶端代碼重新打包發佈外掛版本,達到增加收益、去除限制、降低遊戲難度的目的。修改代碼庫文件,直接替換安裝後程序的庫文件,可以通過hook方式動態修改內存中的執行代碼.

⑤模擬器操作

讓玩家可在PC上運行手遊。PC上的模擬器,目前主要流行的是Android模擬器,其具體產品有TGP、海馬玩、天天等模擬器.

⑥協議修改

用戶修改上傳數據,達到上報虛假數據作弊目的用戶重複上傳獲取收益的消息,達到獲取額外收益的目的用戶上傳不符合條件的消息,達到跳過客戶端限制目的用戶修改協議達到上傳***信息的目的.

 

三、 反外掛系統

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

1)服務器端防外掛系統

 ①遊戲時間相關校驗。客戶端計時不可信,需要在服務器校驗客戶端上傳的時間參數是否合理,校驗遊戲過程數據和時間之間的關係是否合理(例如里程、時間、速度關係)

②遊戲核心邏輯校驗。每次操作均通過協議上傳,服務器認可後再實際執行操作,每次操作服務器均要進行合理性判斷,且判斷結果實時反饋。

③玩家間數據相互校驗。各玩家的操作經過服務器中轉對其它玩家同步,如果核心邏輯在每個客戶端單獨計算,各玩家需定時上傳各自遊戲局勢數據,服務器進行對比校驗,如果核心邏輯在部分客戶端計算,其他玩家需從該客戶端同步局勢數據,服務器需要校驗主邏輯數據是否合理。

④遊戲操作時序相關校驗。部分操作有明確的時序要求,打亂時序可能導致額外收益。服務器端通過對客戶端發送的操作時序進行校驗,來判斷客戶端發送的請求時序是否合理。

服務器端防外掛的缺點:

(1)容易導致誤殺

目前很多遊戲的反外掛系統採用範圍性的數值驗證,由於本身的設計原因或者弱網絡的原因,很多時候會造成誤殺。

(2) 服務器端的設計非常複雜

由於服務器端的數據及流程校驗和遊戲的代碼邏輯息息相關,所以服務器端防外掛的數據以及代碼邏輯需要根據客戶端的代碼邏輯及數據進行設計和開發,這樣會導致服務器端防外掛設計和客戶端的代碼邏輯進行緊耦合。客戶端只要進行代碼邏輯的修改,也有可能導致服務器端的防外掛系統進行修改。

(3)服務器端防外掛功能無法通用

每一款遊戲都有自己的代碼邏輯以及各種數據,所以服務器端的防外掛功能無法做到統一標準,對每一款遊戲都使用。往往是隻能針對特定的遊戲進行定製化開發防外掛功能。

(4) 服務器端外掛系統維護成本高

綜上所述,由於服務端外掛系統的複雜性以及定製化的多樣性,必然導致開發成本以及維護成本不斷增高。另外需要在服務器端進行各種邏輯和數據的校驗,隨着遊戲的增多,系統設備的擴容以及系統的計算資源消耗也會越來越大,必然導致硬件成本及數據流量成本的增加。

 

2) 客戶端防外掛系統

針對服務器端防外掛系統的不足,御安全加固系統開發出了一種基於客戶端加固的防外掛系統,它是一種基於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保護方案以及對協議關鍵代碼的保護,可以防止***者逆向協議的流程或者算法,避免***者對協議進行***,防止外掛軟件通過破解協議的方式,***加固後的遊戲。

 

四、 雲-端結合防外掛***

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

 

來源:騰訊御安全技術博客

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章