中文字幕无码日韩视频无码三区

Android外掛特征檢測的方法及系統的制作方法

文檔序號:9455733閱讀(du):2052來(lai)源:國知局
Android外掛特征檢測的方法及系統的制作方法
【技術領域】
[0001] 本發明涉及Android技術領域,尤其是涉及一種Android外掛特征檢測的方法及 系統。
【背景技術】
[0002] 當前Android手機游戲非常流行,于是衍生出一批以修改Android游戲的行為或 數據為主要功能的應用,這些應用破壞了游戲的公平性、安全性和侵害了廠家的利益。當 前,在被越獄過的Android手機上,很難做到完全的防護,只能盡可能的提高游戲破解的難 度,和提高外掛檢測的能力。隨著游戲外掛的更新,游戲外掛的檢測也需要不斷的更新豐富 檢測方式。
[0003] 現有專利(【申請號】201410067209. X)公開了一種外掛程序的鑒定方法、服務器和 系統,該專利通過操作環境信息獲取程序樣本行為序列,以此判斷外掛的方法,同時也沒有 公開提取外掛樣本的方法。此外,從模塊耦合角度來看,該專利的外掛檢測模塊易被黑客分 析并攻擊,安全性低。

【發明內容】

[0004] 本發明所要解決的技術問題是:檢測安裝包的元信息,以及運行狀態,以檢測其是 否為外掛程序,保護游戲的公平性,和游戲廠商的利益。
[0005] 為了解決上述技術問題,本發明采用的技術方案為:提供一種Android外掛特征 檢測的方法,包括如下步驟:
[0006] 客戶端從服務端獲取外掛程序的包名和Activity名;
[0007] 定義數據結構,以存儲客戶端所有安裝包的元信息;
[0008] 將所述的安裝包元信息中的包名和Activity名與外掛程序的包名和Activity名 進行匹配;
[0009] 若有匹配,則判斷所述匹配信息對應的安裝包是否運行;
[0010] 若有運行,則確認所述的安裝包為外掛程序。
[0011] 為解決上述問題,本發明還提供一種Android外掛特征檢測的系統,包括:
[0012] 獲取模塊,用于從服務端獲取外掛程序的包名和Activity名;
[0013] 元信息模塊,用于定義數據結構,以存儲客戶端所有安裝包的元信息;
[0014] 匹配模塊,用于將所述的安裝包元信息中的包名和Activity名與外掛程序的包 名和Activity名進行匹配;
[0015] 判斷模塊,用于判斷所述匹配信息對應的安裝包是否運行;
[0016] 確認模塊,用于確認所述安裝包為外掛程序。
[0017] 本發明的有益效果在于:區別于現有技術,本發明通過獲取外掛程序應用特征信 息,并與本地客戶端的安裝包進行匹配,判斷是否有安裝包處于運行狀態,若有,則確認為 外掛程序。通過上述方式,本發明可以實現Android游戲的外掛檢測,保護游戲的公平性以 及游戲廠商的利益;同時占用系統資源低,在低性能設備上也可以實現。
【附圖說明】
[0018] 圖1為本發明方法實施例一的流程示意圖;
[0019] 圖2為本發明方法實施例二的流程示意圖;
[0020] 圖3為本發明系統實施例三的結構框圖;
[0021] 圖4為本發明系統實施例四的結構框圖。
【具體實施方式】
[0022] 為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式并配合附 圖予以說明。
[0023] 本發明最關鍵的構思在于:獲取外掛程序應用特征信息,并與客戶端上的在安裝 包進行匹配,若有運行則認定為外掛程序。
[0024] 請參照圖1,本發明實施例一提供一種Android外掛特征檢測的方法,包括如下步 驟:
[0025] Sl :客戶端從服務端獲取外掛程序的包名和Activity名;
[0026] S2 :定義數據結構,以存儲客戶端所有安裝包的元信息;
[0027] S3 :將所述的安裝包元信息中的包名和Activity名與外掛程序的包名和 Activity名進行匹配;
[0028] S4 :若有匹配,則判斷所述匹配信息對應的安裝包是否運行;
[0029] S5 :若有運行,則確認所述的安裝包為外掛程序。
[0030] 具體地,本發明實施例一分析當前客戶端(或本地)已安裝的應用信息,提取應用 特征,匹配外掛特征的檢測方式。
[0031] 由于每個Android應用程序都具有一個清單文件,此文件描述了一個應用的配置 信息(即元信息),采集這些信息,提取出應用特征,使之和已收集的游戲外掛應用特征信 息作匹配,以此來確定游戲外掛。
[0032] 其次,Android清單文件在應用安裝進設備后很難再變化,只有在應用升級時會發 生變化,但是應用升級的頻率一般不會很高,而且應用升級后可以及時重新采集特征信息, 這些信息保存在云端,可以做到方便快捷的更新。
[0033] 在獲取配置信息后,與外觀程序(或惡意軟件)的應用特征信息進行對比,若發現 匹配且在運行狀態,則認定含有該元信息的安裝包為外掛程序。
[0034] -般的,在一個應用被發布之后,應用的包名是固定的,雖然不是唯一的,但同一 個客戶端上不能同時安裝兩個包名相同的應用,同時使用包名和Acitvity名幾乎可以確 定一個應用,所以使用這兩個特征作為應用特征信息。
[0035] 其中,包名是android應用程序的一個特征,一個應用程序除了有名字還有一個 包名,名字在不同語言下可能顯示不同,比如在中文下顯示"音樂播放器",在英文下可能顯 示的是"Music player",但是包名是確定的,如"com. nd. musicplayer"。包名是所有應用 都具有的,一般應用上傳到應用商城也是通過包名和簽名來授權的,所以一個應用發布后, 包名很難再改變,改變了包名就需要重新授權。
[0036] Activity是android中一種用來和用戶交互的組件,簡單地說,就是用戶界面,每 個應用程序都必須具有至少一個Activity,這個Activity是入口界面,就是點開應用時第 一個看到的界面,這個界面也具有一個名字,通過同時檢測包名和Activity名可以在很大 程度上減少誤判。
[0037] 比如燒餅加速外掛的包名是:org. sbtools. gamespeed
[0038] 可以采集幾個特殊的Activity名分別是:
[0039] I. org. sbtools. gamespeed. main. MainActivity
[0040] 2. org. sbtools. gamespeed. main. NoifyUserDialogActivity
[0041] 3. org. sbtools. gamespeed. main. UserActivity
[0042] 在實際檢測時,通過組合使用上述包名及Activity作為特征,幾乎不會發生誤 判。
[0043] 通過上述兩個應用特征本質上確定的是應用程序是合法的。而德國Avira公司的 Avira AntiVirv殺毒軟件使用類名的一部分作為特征檢測手機應用是否包含廣告和惡意 代碼,具有很大的誤判率。相反,使用包名和Activity名這兩個應用特征信息時,由于在用 戶命名時具有很大的隨機性,而且同時組合使用,因此用此二者信息來進行檢測外掛程序, 誤判率很低。
[0044] 區別于現有技術,本發明實施例一通過獲取外掛程序應用特征信息,并與本地客 戶端的安裝包進行匹配,判斷是否有安裝包處于運行狀態,若有,則確認為外掛程序。通過 上述方式,本發明可以實現Android游戲的外掛檢測,保護游戲的公平性以及游戲廠商的 利益;同時占用系統資源低,在低性能設備上也可以實現。
[0045] 如圖2所示,在實施例一的基礎上,本發明實施例二的步驟Sl具體為:
[0046] Sll :在云端服務器儲存外掛程序的包名和Activity名;
[0047] S12 :啟動客戶端,通過http協議獲取所述外掛程序的包名和Activity名;
[0048] S13 :客戶端緩存所述外掛程序的包名和Activity名在本地服務器上。
[0049] 外掛程序(或惡意軟件)的應用特征信息存儲在云端服務器上,客戶端定期(如 每天)第一次啟動后,通過http協議獲取該信息,并緩存在本地數據庫上。
[0050] 然后再定義數據結構,用于存儲客戶端所有安裝包的元信息;具體如下所示:
[0051] Class Packagelnfo { String packageName; /Z存儲包名
[0052] String I」st<Si:ring> activitys;//存儲包的所有 Activity 名 }
[0053] 并在程序啟動后,分析當前所有安裝包的元信息結構,生成已安裝包元信息列表, 并保存,如保存進List〈PackageInfo>installed Packages。其中該列表是一種常用數據結 構,檢測到的所有安裝包元信息每條對應列表中的一項,列表本身是在內存中,每次啟動時 都執行一次,用列表儲存是為了方便之后對這個列表進行遍歷,比較列表中的每一條是否 匹配外掛程
當前第1頁1 2 
網友詢(xun)問(wen)留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1