在2019年手機遊戲使用者達到6億多人,市場規模高達1500多億元,手遊市場繁榮,同時也伴隨著手遊外掛的泛濫。現如今手遊行業裡普遍存在的一個現象,部分惡意玩家使用多開,外掛等程式,給遊戲廠商造成了不小的損失。這些遊戲玩家在一臺手機上開多個遊戲,登入多個小號,組隊做任務,刷怪,批次刷道具。此外,由於多開的特殊性,還可以用多開軟體來達到篡改遊戲資料,嵌入外掛等惡意行為。
手遊外掛的存在會嚴重破壞遊戲公平性,影響遊戲口碑和開發者的利益。外掛蛀蟲長期不得到解決,既使得一部分正常玩家流失,也使得遊戲逐漸的淡出視野、關注度降低,可以說危害非常大。
一、多開原理 - 知己知彼
當前,多開技術逐漸成為黑灰產非法謀利的“溫床”。黑灰產透過多開技術刷取獲取遊戲幣來實現變現。一般而言,黑灰產透過以下4種方式來達到作弊的目的。
1.新的程式方式多開
其原理是透過Hook系統函式來修改四大元件和一些系統服務,達到多開效果。
2.透過修改APK,重新安裝一個APK
在程式中可以觀察到,每多開一個APP,就多一個包名不同,但APP內容相同的程式。
3.手機廠商自帶的多開
廠商在手機原始碼層FrameWork進行修改來達到多開效果。
4.透過Frida來實現多開的效果
原理大致是Hook了“多使用者管理類”來建立多使用者。
二、安全隱患 - 快速響應
Android多開帶來眾多安全隱患,主要包括:
○ 透過多開執行遊戲,一定程度上短期內避開外掛檢測。
○ 遊戲資料被篡改使得遊戲失去公平性。
○ 載入一些惡意外掛程式進行對使用者賬號造成一定危害。
○ 多開用到Hook導致遊戲執行不穩定,崩潰影響體驗。
基於以上提到的幾點隱患,易盾反外掛在這方面透過多年的積累,深入研究外掛多開檢測技術,即使外掛更新頻繁,透過“大資料+人工智慧”分析,能在最的的時間內分析出外掛特徵,以最快的速度做出相應,並且將結果反饋給遊戲廠商,在一定程度上使得外掛能夠被快速檢測處理,降低了外掛對遊戲的危害。
三、檢測方案 - 解決問題
方式一:透過私有的Activity檢測 在AndroidManifest中配置Activity設定為android:exported="true",這樣在應用中queryIntentActivities來檢測是否有多個這樣的Activity,因為這個Activity有且只有一個。
在AndroidManfest.xml中配置
使用API來獲取Activity的數量
方式二:透過使用者標識號來檢測
多開環境中,/data/data目錄下會找到多個應用目錄,如果在不多開的情況下,這個目錄只有一個。
一個UID下面只有一個應用程式
一個UID下面有多個應用程式
方式三:檢測當前應用目錄
應用的私有目錄在同一臺手機上是固定的目錄,系統提供的API,getFilesDir可以獲取到這個目錄,在多開的情況下路徑中會出現多開APP的包名在最開頭的一部分內容中。
但是部分多開軟體會Hook一些系統函式,使得獲取路徑“看起來”是正常的,不過透過情況下,檢測多開也是多個維度檢測的,這種繞過檢測方式也還是有侷限性的
方式四:檢測/proc/self/maps
多開的應用通常需要在程式中載入一些多開的SO來達到效果,所以每個多開程式中都會存在一些SO檔案,可以透過檢測maps下的檔案來匹配否是否存在一些我們已知的SO檔案。這種方式有一個缺點就是,SO檔名稱多變,檢測方式和第3中檢測方式一樣需要積累比較多的名稱來匹配。
四、多開檢測總結
多開技術在外掛程式中比較常見,危害也顯而易見的,尤其是嵌入外掛程式後篡改遊戲資料,批次註冊小號,打怪,做任務等等。
易盾透過多年技術深耕,在外掛檢測方面有著諸多積累,具備了識別外掛,多開,加速器,指令碼、模擬器等檢測對抗功能,並且在相容性,安全性,便捷性方面已經具有一定的優勢。檢測識別方案也在不斷的更新,能夠精準檢測、識別、反饋外掛給遊戲廠商,從而有效打擊外掛。結合“大資料+人工智慧”的最新技術,易盾的檢測方案具備了及時發現、處理外掛的特點,進一步保護遊戲不被外掛損害,為遊戲廠商提供有效的保護。