將用戶信息進(jìn)行多次處理之后再 進(jìn)行發(fā)送,根據(jù)上述流程,依然能夠追溯到原始的用戶信息,從而能夠準(zhǔn)確檢測出該應(yīng)用程 序是否為惡意應(yīng)用程序。
[0074] 本發(fā)明實(shí)施例中,對于應(yīng)用程序包含的發(fā)送類API,如果其執(zhí)行參數(shù)與提取的移動 終端中的用戶信息匹配,則直接確定該應(yīng)用程序?yàn)閻阂鈶?yīng)用程序,否則,根據(jù)其執(zhí)行參數(shù)和 非發(fā)送類API的結(jié)果變量,在非發(fā)送類中遞歸查找執(zhí)行參數(shù)與提取的用戶信息匹配的非發(fā) 送類API,如果查找到,則確定該應(yīng)用程序?yàn)閻阂鈶?yīng)用程序。上述過程中,如果發(fā)送類API的 執(zhí)行參數(shù)與提取的用戶信息不匹配時(shí),也可W從非發(fā)送類API中追溯到該執(zhí)行參數(shù)在被處 理之前的原始信息,因此,即使應(yīng)用程序?qū)@取的用戶信息進(jìn)行加密等處理,也能夠確定出 其是否為惡意應(yīng)用程序,從而,提高了應(yīng)用程序檢測的確定性。
[00巧]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種惡意應(yīng)用程序檢測裝置,由于 上述裝置解決問題的原理與惡意應(yīng)用程序檢測方法相似,因此上述裝置的實(shí)施可W參見方 法的實(shí)施,重復(fù)之處不再賞述。
[0076] 如圖4所示,為本發(fā)明實(shí)施例提供的惡意應(yīng)用程序檢測裝置的結(jié)構(gòu)示意圖,包括:
[0077] 提取單元41,用于提取移動終端中的所有用戶信息;
[0078] 獲取單元42,用于獲取移動終端安裝的應(yīng)用程序所包含的各應(yīng)用程序編程接口 API的參數(shù)變量,所述參數(shù)變量包括執(zhí)行參數(shù),或者,執(zhí)行參數(shù)和結(jié)果變量,其中,各API根 據(jù)是否發(fā)送消息,被劃分為發(fā)送類API和非發(fā)送類API ;
[0079] 確定單元43,用于將獲取的發(fā)送類API的執(zhí)行參數(shù)與提取的所有用戶信息或者獲 取的非發(fā)送類API的結(jié)果變量進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述應(yīng)用程序是否為惡意應(yīng)用 程序。
[0080] 其中,確定單元43,可W包括:
[0081] 判斷子單元,用于針對所述應(yīng)用程序包含的每一發(fā)送類API,判斷提取的用戶信息 中是否存在與該發(fā)送類API的執(zhí)行參數(shù)匹配的用戶信息;
[0082] 確定子單元,用于在所述判斷子單元的判斷結(jié)果為是時(shí),確定所述應(yīng)用程序?yàn)閻?意應(yīng)用程序;或者用于在查找子單元從非發(fā)送類API中查找到執(zhí)行參數(shù)與提取的用戶信息 匹配的非發(fā)送類API時(shí),確定所述應(yīng)用程序?yàn)閻阂鈶?yīng)用程序;
[0083] 查找子單元,用于在所述判斷子單元的判斷結(jié)果為否時(shí),根據(jù)所述發(fā)送類API的 執(zhí)行參數(shù)和所述應(yīng)用程序包含的非發(fā)送類API的結(jié)果變量,從非發(fā)送類API中遞歸查找是 否存在執(zhí)行參數(shù)與提取的用戶信息匹配的非發(fā)送類API。
[0084] 較佳的,查找子單元,可W包括:
[00財(cái)查找模塊,用于根據(jù)所述發(fā)送類API的執(zhí)行參數(shù),從所述非發(fā)送類API中查找是否 存在結(jié)果變量與所述發(fā)送類API的執(zhí)行參數(shù)一致的目標(biāo)API 及用于在判斷模塊的判斷 結(jié)果為否時(shí),根據(jù)目標(biāo)API的執(zhí)行參數(shù),從未遍歷的非發(fā)送類API中繼續(xù)遞歸查找是否存在 結(jié)果變量與目標(biāo)API的執(zhí)行參數(shù)一致的非發(fā)送類API,直至查找到執(zhí)行參數(shù)與提取的用戶 信息匹配的非發(fā)送類API或者遍歷所有非發(fā)送類API為止;
[0086] 判斷模塊,用于在所述查找模塊查找到所述目標(biāo)API時(shí),判斷目標(biāo)API的執(zhí)行參數(shù) 否是與提取的至少一個(gè)用戶信息匹配;
[0087] 第一確定模塊,用于在所述判斷模塊的判斷結(jié)果為是時(shí),確定所述非發(fā)送類API 中存在執(zhí)行參數(shù)與提取的用戶信息匹配的非發(fā)送類API。
[0088] 較佳的,獲取單元42,可W包括:
[0089] 逆向反編譯子單元,用于對所述應(yīng)用程序進(jìn)行逆向反編譯,得到所述應(yīng)用程序?qū)?應(yīng)的源碼;
[0090] 獲取子單元,用于根據(jù)所述源碼獲取所述應(yīng)用程序包含的各API變量參數(shù)。
[0091] 其中,獲取子單元,包括:
[0092] 標(biāo)記模塊,用于針對每一 API,分別在該所述源碼中、該API執(zhí)行前和執(zhí)行后插入 標(biāo)記代碼,所述標(biāo)記代碼包括API分類標(biāo)記代碼;
[0093] 記錄模塊,用于記錄每一 API的執(zhí)行信息,根據(jù)該API的執(zhí)行信息和該API的標(biāo)記 代碼,獲取該API的類別和該API的參數(shù)變量。
[0094] 其中,獲取子單元,可W用于通過用于記錄所述各API的執(zhí)行信息的日志,獲取所 述各API的參數(shù)變量。
[0095] 具體實(shí)施時(shí),本發(fā)明實(shí)施例提供的惡意應(yīng)用程序檢測裝置,還可W包括:
[009引輸出單元,用于輸出記錄各API的執(zhí)行信息的日志。
[0097] 具體實(shí)施時(shí),判斷子單元,可W包括:
[0098] 比較模塊,用于依次比較該發(fā)送類的執(zhí)行參數(shù)與提取的每一用戶信息;
[0099] 第二確定模塊,用于如果該發(fā)送類的執(zhí)行參數(shù)與當(dāng)前比較的用戶信息相同,則確 定提取的用戶信息中存在與該發(fā)送類API的執(zhí)行參數(shù)匹配的用戶信息;如果該發(fā)送類的執(zhí) 行參數(shù)與提取的每一用戶信息均不相同,則確定提取的用戶信息中不存在與該發(fā)送類API 的執(zhí)行參數(shù)匹配的用戶信息。
[0100] 為了描述的方便,W上各部分按照功能劃分為各模塊(或單元)分別描述。當(dāng)然, 在實(shí)施本發(fā)明時(shí)可W把各模塊(或單元)的功能在同一個(gè)或多個(gè)軟件或硬件中實(shí)現(xiàn)。
[0101] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí) 施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī) 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn) 品的形式。
[0102] 本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、W及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┧托┯?jì)算 機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器W產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能 的裝置。
[0103] 送些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備W特 定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。
[0104] 送些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟W產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖 一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0105] 盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對送些實(shí)施例做出另外的變更和修改。所W,所附權(quán)利要求意欲解釋為包括優(yōu) 選實(shí)施例W及落入本發(fā)明范圍的所有變更和修改。
[0106] 顯然,本領(lǐng)域的技術(shù)人員可W對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。送樣,倘若本發(fā)明的送些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含送些改動和變型在內(nèi)。
【主權(quán)項(xiàng)】
1. 一種惡意應(yīng)用程序檢測方法,其特征在于,包括: 提取移動終端中的所有用戶信息; 獲取移動終端安裝的應(yīng)用程序所包含的各API的參數(shù)變量,所述參數(shù)變量包括執(zhí)行參 數(shù),或者,執(zhí)行參數(shù)和結(jié)果變量,其中,各API根據(jù)是否發(fā)送消息