軟件標識庫的建立方法
【專利摘要】本申請公開了一種軟件標識庫的建立方法,包括:對于當前待提取標識的應用軟件,根據(jù)本軟件對各應用程序編程接口API的調(diào)用次數(shù),確定該應用軟件的API特征向量;根據(jù)所述應用軟件的所述API特征向量以及當前軟件標識庫中的各類應用軟件的API特征向量和類別信息,按照樸素貝葉斯分類算法,確定所述應用軟件所屬類別;將所述應用軟件的所述API特征向量和所述類別,作為所述應用軟件的標識信息添加到所述軟件標識庫中。采用本發(fā)明,可以對軟件進行客觀性標識且效率高、能滿足大量應用軟件的分類檢測需求。
【專利說明】軟件標識庫的建立方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機軟件分類技術(shù),特別是涉及一種軟件標識庫的建立方法。
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)和智能終端的飛速發(fā)展,移動應用數(shù)量呈指數(shù)性增長。在智能終 端應用軟件領(lǐng)域中,作為連接應用軟件與用戶的渠道-國內(nèi)第三方應用市場已大量涌現(xiàn), 并呈現(xiàn)井噴式增長的局面。國內(nèi)第三方應用商店應用軟件呈現(xiàn)繁多、混雜、虛假信息、同質(zhì) 化甚至是剽竊的局面,移動應用的標識,分類,安全檢測和反剽竊已成為迫切的需求。龐大 的移動應用軟件量面臨著標識分類管理的問題。
[0003]目前,對應用軟件進行標識的方法可分為:基于描述信息的標識方法,基于消息摘 要第五版算法(Message-DigestAlgorithm5,MD5)的標識方法,基于AST的標識方法等。
[0004] 其中,基于描述信息的標識方法,是根據(jù)應用開發(fā)者提供的應用名稱、版本信息以 及應用描述信息,結(jié)合相應的人工審核機制,如運行應用、查看應用信息等手段,得到確認 及修正后的描述信息,作為應用的標識信息。此方法是目前使用最為廣泛的軟件標識方法, 幾乎各大應用商城應用軟件都是以此方法對應用進行類別及其他方面的標識。
[0005] 基于MD5摘要的標識方法,是對文件進行摘要運算,取摘要值作為文件的標識信 息,這是從文件唯一性角度標識文件的常用方法,目前最常用的摘要算法就是MD5算法。對 應用軟件做MD5值運算,取其MD5值作為應用軟件標識信息的方法,在很多應用商店中使 用。其作為應用軟件的唯一標識,在一定程度上解決了應用商店應用去重復、查找、存儲等 方面的問題。
[0006] 基于AST的標識方法,在軟件分析領(lǐng)域,特別是靜態(tài)分析方法中,最常用的方式就 是反編譯二進制代碼或字節(jié)碼,得到類似于源碼的中間代碼;根據(jù)中間代碼,進行詞法語法 分析,得到抽象語法樹,作為軟件的標識信息。在軟件惡意代碼分析、軟件同源分析中,以抽 象語法樹作為軟件標識信息進行進一步分析的方法非常常見。抽象語法樹可以生成更多 的語法語義信息,供后續(xù)的分析,所以基于AST的標識方法,在軟件深度分析中應用非常廣 泛。
[0007] 上述傳統(tǒng)的應用軟件標識方法雖然都有廣泛應用,但是還是分別存在下述不足:
[0008] 基于描述信息的標識方法取決于開發(fā)者提供的應用信息與應用商店審核人員的 工作結(jié)果,其過程存在過多的人為主觀因素,對于開發(fā)者提供虛假惡意應用信息情況與審 核人員工作結(jié)果不正確的情況無法控制。另外,基于描述信息的標識方法,在應用提交應用 商店后,需要對其進行多方面的審核,對其標識信息進行核對;目前大多數(shù)應用商店對描述 信息核對方法為人工確認,人工參與度高,工作量大,造成效率低的后果。
[0009] 基于MD5摘要的標識方法,雖然從客觀上,唯一的標識了應用軟件,但是此種方法 攜帶的信息量僅僅為應用軟件文件本身,沒有類別、軟件語義、軟件功能等方面信息,無法 滿足標識需求;進而,由于改動應用軟件會造成MD5值不同,所以,此方法無法面對應用軟 件反剽竊等需求。
[0010] 基于AST的標識方法,攜帶了應用軟件的所有語義信息,信息量齊全;但是,AST的 生成耗費計算成本非常大,其大小往往是應用軟件本身的數(shù)倍甚至數(shù)十倍大小,存儲成本 巨大;進而,遍歷AST所需要的計算成本更大,所以,此方法的代價較大。
[0011] 由此可見,上述傳統(tǒng)的軟件標識方法存在客觀正確性不足、效率低、信息量低或者 運算復雜度高、運算開銷大等問題。因此,無法滿足現(xiàn)有大量應用軟件的分類檢測需求。
【發(fā)明內(nèi)容】
[0012] 有鑒于此,本發(fā)明的主要目的在于提供一種軟件標識庫的建立方法,該方法可以 對軟件進行客觀性標識且效率高、能滿足大量應用軟件的分類檢測需求。
[0013] 為了達到上述目的,本發(fā)明提出的技術(shù)方案為:
[0014] 一種軟件標識庫的建立方法,包括:
[0015] 對于當前待提取標識的應用軟件,根據(jù)本軟件對各應用程序編程接口API的調(diào)用 次數(shù),確定該應用軟件的API特征向量;
[0016] 根據(jù)所述應用軟件的所述API特征向量以及當前軟件標識庫中的各類應用軟件 的API特征向量和類別信息,按照樸素貝葉斯分類算法,確定所述應用軟件所屬類別; [0017] 將所述應用軟件的所述API特征向量和所述類別,作為所述應用軟件的標識信息 添加到所述軟件標識庫中。
[0018] 綜上所述,本發(fā)明提出的軟件標識庫的建立方法,基于能客戶反應軟件語義信息 的API調(diào)用信息,按照樸素貝葉斯分類算法,對軟件進行標識、分類、管理。如此,可以實現(xiàn) 對軟件的客觀性標識,并且效率高,從而能滿足大量應用軟件的分類檢測需求。
【專利附圖】
【附圖說明】
[0019] 圖1為本發(fā)明實施例一的流程示意圖。
【具體實施方式】
[0020] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對 本發(fā)明作進一步地詳細描述。
[0021] 本發(fā)明的核心思想是:基于軟件對API的調(diào)用信息,生成相應的API特征向量,根 據(jù)該API特征向量,按照樸素貝葉斯分類算法,確定軟件所屬類別,如此,基于API信息對應 用軟件進行標識和分類,一方面可以確保標識的客觀性,另一方面,API特征向量的構(gòu)建和 分析易于實現(xiàn),效率高,因此,能滿足大量應用軟件的分類檢測需求。
[0022] 圖1為本發(fā)明實施例一的流程示意圖,如圖1所示,該實施例主要包括:
[0023] 步驟101、對于當前待提取標識的應用軟件,根據(jù)本軟件對各應用程序編程接口 API的調(diào)用次數(shù),確定該應用軟件的API特征向量。
[0024] 較佳地,本步驟可以采用下述方法確定該應用軟件的API特征向量:
[0025] 步驟xl、對所述應用軟件進行反編譯,生成反編譯代碼。
[0026] 具體地,可以采用現(xiàn)有的反編譯方法實現(xiàn)本步驟,在此不再贅述。
[0027]步驟x2、根據(jù)所述反編譯代碼,確定該應用軟件所調(diào)用的API集合APIi = {APIn,...,APIni,...,APInJ,以及API集合中每個API的調(diào)用頻率,其中,N為所述應用軟 件所調(diào)用的API數(shù)量;APIni為所述應用軟件所調(diào)用的第n個API,n= {1,2, ...,N}。
[0028] 本步驟的具體實現(xiàn)為本領(lǐng)域技術(shù)人員所掌握,在此不再贅述。
[0029] 步驟x3、根據(jù)所述調(diào)用頻率,生成所述應用軟件的API特征向量Ai = {An,. . .,Ani,. . .,AnJ,其中,Ani表示APIni被所述應用軟件調(diào)用的頻率。
[0030] 步驟102、根據(jù)所述應用軟件的所述API特征向量以及當前軟件標識庫中的各類 應用軟件的API特征向量和類別信息,按照樸素貝葉斯分類算法,確定所述應用軟件所屬 類別。
[0031] 本步驟用于基于API特征向量,對軟件進行分類。這里,由于API特征向量是能準 確的體現(xiàn)出軟件的語義特征,不需要人工參與,因此,可以實現(xiàn)自動化的機器分類,從而可 以快速高效地得到分類結(jié)果,能夠有效的解決應用開發(fā)者提供虛假應用描述信息問題,并 且能夠起到監(jiān)督修正人工審核結(jié)果的功能。
[0032] 具體地,本步驟可以采用下述方法實現(xiàn):
[0033] 按照樸素貝葉斯分類算法,計算
【權(quán)利要求】
1. 一種軟件標識庫的建立方法,其特征在于,包括: 對于當前待提取標識的應用軟件,根據(jù)本軟件對各應用程序編程接口 API的調(diào)用次 數(shù),確定該應用軟件的API特征向量; 根據(jù)所述應用軟件的所述API特征向量以及當前軟件標識庫中的各類應用軟件的API 特征向量和類別信息,按照樸素貝葉斯分類算法,確定所述應用軟件所屬類別; 將所述應用軟件的所述API特征向量和所述類別,作為所述應用軟件的標識信息添加 到所述軟件標識庫中。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定該應用軟件的API特征向量包 括: 對所述應用軟件進行反編譯,生成反編譯代碼; 根據(jù)所述反編譯代碼,確定該應用軟件所調(diào)用的API集合APIi = {APIn,...,APIni, ...,APInJ,以及API集合中每個API的調(diào)用頻率,其中,N為所述應用軟 件所調(diào)用的API數(shù)量;APIni為所述應用軟件所調(diào)用的第n個API,n = {1,2, ...,N}; 根據(jù)所述調(diào)用頻率,生成所述應用軟件的API特征向量Ai = {A",. . .,Ani,. . .,AnJ,其 中,Ani表示APIni被所述應用軟件調(diào)用的頻率。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,按照樸素貝葉斯分類算法,計算
中,Xi為所述應用軟件i的類別標識信息,X,. 丨-為軟件 標識庫中的軟件類別集合,M為軟件類別數(shù)量,m= {1,2,...,Mhp(C1JAi)為特征向量化屬 于當前所述軟件標識庫中類別Cm的概率。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述應用軟件的所述API特征向量 和所述類別,作為所述應用軟件的標識信息添加到所述軟件標識庫中包括: 將所述類別的標識信息Xi作為新增維度,添加至所述應用軟件的API特征向量中,得 到新的特征向量Zi = {An,. . .,Ani,. . .,ANi,XJ,將該特征向量Zi作為所述應用軟件的標識 信息向量增加至所述軟件標識庫中。
【文檔編號】G06F17/30GK104361141SQ201410759349
【公開日】2015年2月18日 申請日期:2014年12月11日 優(yōu)先權(quán)日:2014年12月11日
【發(fā)明者】董楓, 郭燕慧, 李承澤, 張程鵬, 胡陽雨 申請人:北京郵電大學