Android手遊外掛入侵----寓攻於守,方能破敵
歡迎訪問 ofollow,noindex" target="_blank">網易雲社群 ,瞭解更多網易技術產品運營經驗。
手遊外掛入侵
隨著各種爆款手遊的風靡,目前手機遊戲的佔比使用者已經形成一個巨大的市場,市場上你爭我奪,有將PC版本移植到手機中,也有新模式手遊的推出。隨著市場的擴大,除了手遊產業的興起壯大,也滋生出了手遊的各種外掛產業。
現在市面上流行的手遊外掛,總的來說包括了模擬觸控類、加速器、修改器,基於這些外掛涵蓋的功能,就能實現目前絕大部分外掛的能力,如自動打怪升級做任務、血量無限、金幣自設定、遊戲速度加減等等;除了這些工具黨常用的手段外,一些“專業人士”也參與了進來,針對不同遊戲有不同的做法,大體可以概括成以下破解手段,注入遊戲Hook相關邏輯函式、除錯程序、靜態篡改資原始檔和程式碼邏輯等等,這些操作需要相關的專業知識,涉及逆向、重打包、脫殼等操作,經過這些操作可以實現更有定製化功能的外掛。接下來就分享兩個在手遊保護過程中所遇到的典型案例。
破解遊戲下載商店
(1)案例介紹
該案例遇到的是一個專業的團隊,他們負責破解遊戲,向遊戲中植入他們的加速器等外掛,然後重打包上傳到他們的應用商店中,玩家只需要下載他們的應用商店,從中找到需要的遊戲,安裝進入後自帶各種外掛玩遊戲,暢通無阻。進入遊戲的介面會多一個輔助外掛的視窗,提供了加減速的功能,因此需要深入分析植入的原理並找到加減速的實現。
商店頁面展示
(2)案例原理分析
深入分析跟進,發現遊戲程序在啟動時,會載入多個新的動態庫,其中包括了libsubstrate.so(此為一個著名的Hook框架,接著分析找到了他通過呼叫框架Inline Hook了libmono.so匯出的兩個方法,Hook的方法mono原始碼參考如下:
通過啟動程序後附加,獲取到Hook呼叫的函式,通過分析得知,mono_class_from_name函式是mono在解析DLL方法時會經過的一個函式,hook此函式後,在呼叫前,對引數中方法名、名稱空間進行判斷,最終通過呼叫mono_class_get_method_from_name獲取到UnityEngine.Time.set_timeScale方法,該方法的作用便是設定遊戲時間的流速。
Hook程式碼(IDA反編譯):
再通過hook的第二個函式mono_runtime_invoke,進行呼叫該方法,將設定的引數傳入,通過對遊戲時間流速的更改設定,達到加速器的作用。
Hook程式碼(IDA反編譯):
外掛介面服務提供商
(1)案例介紹
隨著手遊市場的崛起,外掛的增多,外掛市場的商人們似乎也意識到外掛開發者也在大量的湧進,絕大多數都能夠寫點指令碼開發外掛,那麼商人們就開始著手底層,通過找尋到的“專業人士”開發底層框架,提供介面供上層開發者呼叫,把邏輯的實現交給他們。
某外掛框架介紹
在最近的客戶反饋中,一個遊戲遇到了一個框架類定製的外掛,外掛作者通過該框架實現了一套自動化點選的指令碼,完全無需人工進行操作。這類方式的實現,將底層深入的原理實現進行了封裝,最後以API的形式提供給玩家,玩家僅需要一定的程式設計基礎便可以掌握進行二次開發。
(2)案例原理分析
深入分析該框架類軟體,發現它使用ROOT許可權啟動了一個疑似輸入的可執行檔案(/data/data/my.apk/app_data/input),從該路徑下提取該可執行檔案進行分析,從中找到了它使用app_process命令執行了一個名為input.jar的檔案。
以下為IDA解析出來的虛擬碼,作為參考。
使用工具開啟jar包檢視,程式碼沒有混淆,很輕易的就找到了關鍵的實現函式(具體實現原理可以參考《 Android中模擬點選類軟體實現原理探究 》,這裡提到過同樣實現的方法):
通過jar包實現了模擬點選,與上層使用socket和其他程序進行通訊,使用者通過lua指令碼控制程式碼邏輯,整個框架流程大致如此。
手遊外掛輔助產業鏈興起
案例介紹
收到了來自一些遊戲的反饋,發現了手遊外掛輔助的產業已經在陰暗的角落處開始萌芽,這些地方可能來自QQ群、貼吧、論壇、某寶等等,他們中有通過傳授工具外掛使用方法達到目的的,有通過破解篡改遊戲程式碼邏輯實現的,甚至有提供框架API呼叫完成的。
QQ群搜尋查詢
網路售賣破解版
可以看到,從Q群到淘寶,無論是工具黨還是專業人士,都開始向手遊市場下手,都想在這塊市場獲取利益。從相關遊戲處瞭解到,不同遊戲都或多或少有定製化的外掛存在。
在不斷與外掛的攻防對戰中,網易雲易盾一直在加強鞏固我們的手遊加固產品對抗外掛的功能,總結了不同外掛的特性和攻擊手段,在對已知外掛的抵禦功能之上,推出了針對新型外掛的感知功能,做到寓攻於守、攻守兼備,新的反外掛系統,除了有新型外掛的感知功能,還有對使用外掛的使用者、裝置機型、外掛型別及詳細特徵等等進行定位,更好地對惡意使用者進行取證和清理。可以 免費試用 。