两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

特征提取的方法及裝置制造方法

文檔序號(hào):6526681閱讀:187來(lái)源:國(guó)知局
特征提取的方法及裝置制造方法【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種特征提取方法及裝置。其中方法包括:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)樱@取一批黑樣本文件和白樣本文件;解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu),計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;判斷各文件是否包含各個(gè)校驗(yàn)碼對(duì)應(yīng)的函數(shù),從而統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù);根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征,或者同理提取出白樣本特征??梢?jiàn),本發(fā)明通過(guò)對(duì)獲取的黑樣本文件和白樣本文件進(jìn)行分析、計(jì)算,統(tǒng)計(jì)每個(gè)函數(shù)的校驗(yàn)碼在文件中出現(xiàn)的次數(shù),最后將僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)作為黑樣本特征提取的基礎(chǔ)?!緦?zhuān)利說(shuō)明】特征提取的方法及裝置【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及網(wǎng)絡(luò)安全【
技術(shù)領(lǐng)域
】,具體涉及一種特征提取的方法及裝置?!?br>背景技術(shù)
】[0002]隨著科技發(fā)展,智能終端具有越來(lái)越多的功能。例如,人們的手機(jī)從傳統(tǒng)的GSM、TDMA數(shù)字手機(jī)轉(zhuǎn)向了擁有能夠處理多媒體資源、提供網(wǎng)頁(yè)瀏覽、電話(huà)會(huì)議、電子商務(wù)等多種信息服務(wù)的智能手機(jī)。然而,品種日益繁多的手機(jī)惡意代碼攻擊以及形勢(shì)日益嚴(yán)峻的個(gè)人數(shù)據(jù)安全問(wèn)題也隨之而來(lái),越來(lái)越多的手機(jī)病毒讓智能手機(jī)用戶(hù)飽受其苦。[0003]手機(jī)惡意代碼防護(hù)技術(shù)針對(duì)惡意代碼進(jìn)行防護(hù)。手機(jī)惡意代碼防護(hù)方式包括多種。例如,特征值掃描方式、基于虛擬機(jī)技術(shù)的惡意代碼防護(hù)、啟發(fā)式掃描方式及相似樣本聚類(lèi)等。不論哪種防護(hù)方式,除了高效的掃描算法(也稱(chēng)為匹配算法)外,組織合理的惡意代碼特征庫(kù)則是基礎(chǔ)。因此,如何準(zhǔn)確高效地提取特征對(duì)于構(gòu)建特征庫(kù)乃至整個(gè)防護(hù)技術(shù)是至關(guān)重要的?!?br/>發(fā)明內(nèi)容】[0004]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的特征提取的方法及裝置。[0005]依據(jù)本發(fā)明的一個(gè)方面,提供一種特征提取方法,其特征在于,包括:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,獲取一批黑樣本文件和白樣本文件;解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu),計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;判斷各文件中是否包含各個(gè)校驗(yàn)碼對(duì)應(yīng)的函數(shù),從而統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù);根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征,或者,根據(jù)僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù),提取出白樣本特征。[0006]優(yōu)選地,在統(tǒng)計(jì)出黑樣本或白樣本之后,還包括:對(duì)特征進(jìn)行優(yōu)選,具體為:為每個(gè)特征針對(duì)所有文件建立向量;初始化一個(gè)集合,依次與每一個(gè)特征的向量做比較;如果集合包括被比較的特征,則保持集合,如果集合不包括被比較的特征,則取集合與被比較向量的并集;依次比較完所有特征的向量,將最終獲得的集合中所包含的特征作為最后保留的特征。[0007]優(yōu)選地,在統(tǒng)計(jì)出黑樣本或白樣本之后,還包括:對(duì)特征進(jìn)行優(yōu)選,具體為:針對(duì)不同特征的不同文件集,如果一個(gè)文件集包含另一個(gè)文件集中所有文件,則將具有較大范圍的文件集對(duì)應(yīng)的特征保留,而拋棄具有較小范圍的文件集對(duì)應(yīng)的特征。[0008]優(yōu)選地,所述特征包括第一特征和第二特征,包含所述第一特征的文件構(gòu)成第一文件集,包含所述第二特征的文件構(gòu)成第二文件集,如果所述第一文件集包含所述第二文件集中所有的文件,則保留所述第一特征,而拋棄所述第二特征。[0009]優(yōu)選地,在所述統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù)之前,還包括:將函數(shù)的校驗(yàn)碼進(jìn)行文件內(nèi)去重。[0010]優(yōu)選地,所述將函數(shù)的校驗(yàn)碼進(jìn)行文件內(nèi)去重包括:針對(duì)每一個(gè)文件,如果有多個(gè)函數(shù)具有相同校驗(yàn)碼,則從所述多個(gè)函數(shù)中提取出一個(gè)函數(shù)作為該校驗(yàn)碼的函數(shù)。[0011]優(yōu)選地,所述黑樣本文件和白樣本文件均為虛擬機(jī)執(zhí)行文件;所述解析每個(gè)文件,得到每個(gè)文件包含的所有的函數(shù)信息結(jié)構(gòu)包括:對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的信息結(jié)構(gòu)。[0012]優(yōu)選地,所述計(jì)算每個(gè)函數(shù)的校驗(yàn)碼包括:利用哈希算法,計(jì)算所述函數(shù)的信息結(jié)構(gòu)體的哈希值,將哈希值作為所述函數(shù)的校驗(yàn)碼。[0013]優(yōu)選地,所述對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的的信息結(jié)構(gòu)包括:根據(jù)虛擬機(jī)執(zhí)行文件格式對(duì)虛擬機(jī)執(zhí)行文件進(jìn)行解析,得到每個(gè)類(lèi)的函數(shù)信息結(jié)構(gòu)體;根據(jù)所述函數(shù)信息結(jié)構(gòu)體中的字段,確定所述虛擬機(jī)執(zhí)行文件的每個(gè)函數(shù)的位置及大小,得到每個(gè)函數(shù)經(jīng)過(guò)反編譯的函數(shù)信息結(jié)構(gòu)。[0014]優(yōu)選地,所述根據(jù)函數(shù)信息結(jié)構(gòu)體中的字段,確定所述虛擬機(jī)執(zhí)行文件的函數(shù)的位置及大小包括:解析所述函數(shù)信息結(jié)構(gòu)體,得到指示虛擬機(jī)執(zhí)行文件的函數(shù)位置的字節(jié)碼數(shù)組字段以及指示虛擬機(jī)執(zhí)行文件的函數(shù)大小的列表長(zhǎng)度字段;根據(jù)所述字節(jié)碼數(shù)組字段以及所述列表長(zhǎng)度字段,確定所述虛擬機(jī)執(zhí)行文件的函數(shù)的位置及大小。[0015]優(yōu)選地,所述對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的的信息結(jié)構(gòu)包括:利用虛擬機(jī)執(zhí)行文件反編譯工具,將所述虛擬機(jī)執(zhí)行文件反編譯為虛擬機(jī)字節(jié)碼。[0016]優(yōu)選地,所述根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征包括:將所述僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)作為所述黑樣本特征,或者將所述僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)的部分代碼作為所述黑樣本特征;所述根據(jù)僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù),提取出白樣本特征包括:將所述僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù)作為所述白樣本特征,或者將所述僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù)的部分代碼作為所述白樣本特征。[0017]優(yōu)選地,還包括:將所述黑樣本特征添加到黑樣本特征庫(kù)中,利用黑樣本特征庫(kù)對(duì)目標(biāo)文件進(jìn)行匹配,如果目標(biāo)文件包含所述黑樣本特征對(duì)應(yīng)的函數(shù)或函數(shù)的子集,確定存在惡意代碼。[0018]優(yōu)選地,利用所述黑樣本特征庫(kù)中黑樣本特征對(duì)應(yīng)的函數(shù)對(duì)目標(biāo)文件進(jìn)行樣本特征查殺、基于虛擬機(jī)查殺、啟發(fā)式查殺,和/或,相似樣本聚類(lèi)。[0019]優(yōu)選地,所述黑樣本文件是指經(jīng)過(guò)預(yù)先初步判斷包含黑樣本的文件,所述白樣本文件是指經(jīng)過(guò)預(yù)先初步判斷不包含黑樣本的文件。[0020]優(yōu)選地,所述獲取一批黑樣本文件和白樣本文件包括:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,查找到?yīng)用程序的安裝包;解析所述安裝包,得到所述應(yīng)用程序的虛擬機(jī)執(zhí)行文件;將所述虛擬機(jī)執(zhí)行文件作為黑樣本文件或白樣本文件。[0021]優(yōu)選地,所述操作系統(tǒng)是指安卓系統(tǒng)。[0022]依據(jù)本發(fā)明的另一個(gè)方面,提供一種特征提取裝置,包括:文件獲取單元,用于從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,獲取一批黑樣本文件和白樣本文件;解析單元,用于解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu);校驗(yàn)碼計(jì)算單元,用于計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;統(tǒng)計(jì)單元,用于判斷各文件中是否包含各個(gè)校驗(yàn)碼對(duì)應(yīng)的函數(shù),從而統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù);提取單元,用于根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征,或者,根據(jù)僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù),提取出白樣本特征。[0023]優(yōu)選地,還包括:特征優(yōu)選單元,用于為每個(gè)特征針對(duì)所有文件建立向量;初始化一個(gè)集合,依次與每一個(gè)特征的向量做比較;如果集合包括被比較的特征,則保持集合,如果集合不包括被比較的特征,則取集合與被比較向量的并集;依次比較完所有特征的向量,將最終獲得的集合中所包含的特征作為最后保留的特征。[0024]優(yōu)選地,還包括:特征優(yōu)選單元,用于針對(duì)不同特征的不同文件集,如果一個(gè)文件集包含另一個(gè)文件集中所有文件,則將具有較大范圍的文件集對(duì)應(yīng)的特征保留,而拋棄具有較小范圍的文件集對(duì)應(yīng)的特征。[0025]優(yōu)選地,所述特征優(yōu)選單元,在所述第一文件集包含所述第二文件集中所有的文件時(shí),則保留第一文件集對(duì)應(yīng)的第一特征,而拋棄所述第二文件集對(duì)應(yīng)的第二特征。[0026]優(yōu)選地,還包括:內(nèi)去重單元,用于將函數(shù)的校驗(yàn)碼進(jìn)行文件內(nèi)去重。[0027]優(yōu)選地,所述內(nèi)去重單元具體用于,針對(duì)每一個(gè)文件,如果有多個(gè)函數(shù)具有相同校驗(yàn)碼,則從所述多個(gè)函數(shù)中提取出一個(gè)函數(shù)作為該校驗(yàn)碼的函數(shù)。[0028]優(yōu)選地,所述黑樣本文件和白樣本文件均為虛擬機(jī)執(zhí)行文件;所述解析單元具體用于,對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的信息結(jié)構(gòu)。[0029]優(yōu)選地,所述校驗(yàn)碼計(jì)算單元具體用于,利用哈希算法,計(jì)算所述函數(shù)的信息結(jié)構(gòu)體的哈希值,將哈希值作為所述函數(shù)的校驗(yàn)碼。[0030]優(yōu)選地,所述解析單元進(jìn)一步用于,根據(jù)虛擬機(jī)執(zhí)行文件格式對(duì)虛擬機(jī)執(zhí)行文件進(jìn)行解析,得到每個(gè)類(lèi)的函數(shù)信息結(jié)構(gòu)體;根據(jù)所述函數(shù)信息結(jié)構(gòu)體中的字段,確定所述虛擬機(jī)執(zhí)行文件的每個(gè)函數(shù)的位置及大小,得到每個(gè)函數(shù)經(jīng)過(guò)反編譯的函數(shù)信息結(jié)構(gòu)。[0031]優(yōu)選地,所述解析單元進(jìn)一步用于,解析所述函數(shù)信息結(jié)構(gòu)體,得到指示虛擬機(jī)執(zhí)行文件的函數(shù)位置的字節(jié)碼數(shù)組字段以及指示虛擬機(jī)執(zhí)行文件的函數(shù)大小的列表長(zhǎng)度字段;根據(jù)所述字節(jié)碼數(shù)組字段以及所述列表長(zhǎng)度字段,確定所述虛擬機(jī)執(zhí)行文件的函數(shù)的位置及大小。[0032]優(yōu)選地,所述解析單元具體用于,利用虛擬機(jī)執(zhí)行文件反編譯工具,將所述虛擬機(jī)執(zhí)行文件反編譯為虛擬機(jī)字節(jié)碼。[0033]優(yōu)選地,所述提取單元具體用于,將所述僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)作為所述黑樣本特征,或者將所述僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)的部分代碼作為所述黑樣本特征;或者,將所述僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù)作為所述白樣本特征,或者將所述僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù)的部分代碼作為所述白樣本特征。[0034]優(yōu)選地,還包括:特征庫(kù)添加單元,用于將所述黑樣本特征添加到黑樣本特征庫(kù)中,匹配單元,用于利用黑樣本特征庫(kù)對(duì)目標(biāo)文件進(jìn)行匹配,如果目標(biāo)文件包含所述黑樣本特征對(duì)應(yīng)的函數(shù)或函數(shù)的子集,確定存在惡意代碼。[0035]優(yōu)選地,所述匹配單元利用黑樣本特征庫(kù)中黑樣本特征對(duì)應(yīng)的函數(shù)對(duì)目標(biāo)文件進(jìn)行樣本特征查殺、基于虛擬機(jī)查殺、啟發(fā)式查殺,和/或,相似樣本聚類(lèi)。[0036]優(yōu)選地,所述黑樣本文件是指經(jīng)過(guò)預(yù)先初步判斷包含黑樣本的文件,所述白樣本文件是指經(jīng)過(guò)預(yù)先初步判斷不包含黑樣本的文件。[0037]優(yōu)選地,所述文件獲取單元具體用于,從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,查找到?yīng)用程序的安裝包;解析所述安裝包,得到所述應(yīng)用程序的虛擬機(jī)執(zhí)行文件;將所述虛擬機(jī)執(zhí)行文件作為黑樣本文件或白樣本文件。[0038]優(yōu)選地,所述操作系統(tǒng)是指安卓系統(tǒng)。[0039]可見(jiàn),本發(fā)明實(shí)施例通過(guò)對(duì)獲取的黑樣本文件和白樣本文件進(jìn)行分析、計(jì)算,統(tǒng)計(jì)每個(gè)函數(shù)的校驗(yàn)碼在文件中出現(xiàn)的次數(shù),最后將僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù)作為特征提取的基礎(chǔ)。由此,通過(guò)快速、準(zhǔn)確地提取特征可保證構(gòu)建高效的特征庫(kù),保證防護(hù)技術(shù)的實(shí)施。優(yōu)選地,可以對(duì)特征進(jìn)行優(yōu)選,從而在獲取大量可提取黑樣本特征后,利用最少的特征來(lái)檢出最多的文件。[0040]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】?!緦?zhuān)利附圖】【附圖說(shuō)明】[0041]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:[0042]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的特征提取的方法流程圖;[0043]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的特征提取的方法中特征優(yōu)選流程圖;以及[0044]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的特征提取的裝置示意圖?!揪唧w實(shí)施方式】[0045]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。[0046]以安卓(Android)操作系統(tǒng)為例,包括應(yīng)用程序?qū)?app層)和系統(tǒng)框架層(framework層),至于從功能劃分上有可能包括的的其他層本發(fā)明則不作討論。其中,通常app層可以理解為上層,負(fù)責(zé)與用戶(hù)交互的界面,例如應(yīng)用程序維護(hù)、以及點(diǎn)擊頁(yè)面時(shí)識(shí)別不同種類(lèi)的點(diǎn)擊內(nèi)容從而顯示不同的上下文菜單等。通常framework層作為中間層,這一層的主要職責(zé)是,將app層獲得的用戶(hù)請(qǐng)求,如啟動(dòng)用用程序、點(diǎn)擊鏈接、點(diǎn)擊保存圖片之類(lèi),轉(zhuǎn)發(fā)往下層去;將下層處理好的內(nèi)容,或者通過(guò)消息,或者通過(guò)中間代理類(lèi),來(lái)分發(fā)至上層,對(duì)用戶(hù)展現(xiàn)出來(lái)。[0047]本發(fā)明的發(fā)明人在研究過(guò)程中發(fā)現(xiàn),通過(guò)對(duì)樣本文件所包含函數(shù)的校驗(yàn)碼在文件中出現(xiàn)次數(shù)的統(tǒng)計(jì),可以確定函數(shù)是黑樣本或白樣本。[0048]參見(jiàn)圖1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的特征提取的方法的流程圖。[0049]該特征提取的方法包括以下步驟。[0050]SlOl:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,獲取一批黑樣本文件和白樣本文件;[0051]其中,黑樣本文件是指經(jīng)過(guò)預(yù)先初步判斷包含黑樣本的文件,例如包含了惡意代碼的文件,白樣本文件是指經(jīng)過(guò)預(yù)先初步判斷不包含黑樣本的文件,例如不包含惡意代碼的文件。本領(lǐng)域技術(shù)人員了解,在進(jìn)行惡意代碼匹配和查殺過(guò)程中,需要建立特征庫(kù),而特征庫(kù)的建立是基于樣本文件進(jìn)行特征提取的。在本發(fā)明實(shí)施例中,預(yù)先通過(guò)人工等方式初步確定一批文件是黑樣本文件還是白樣本文件。黑樣本文件和白樣本文件都是越多越好,有利于準(zhǔn)確提取樣本特征。[0052]本發(fā)明實(shí)施例中,黑樣本文件或白樣本文件例如可以是dex文件。dex文件是Android系統(tǒng)中可以直接在Dalvik虛擬機(jī)(DalvikVM)中加載運(yùn)行的虛擬機(jī)執(zhí)行文件。Dalvik是用于Android平臺(tái)的Java虛擬機(jī)。Dalvik經(jīng)過(guò)優(yōu)化,允許在有限的內(nèi)存中同時(shí)運(yùn)行多個(gè)虛擬機(jī)的實(shí)例,并且每一個(gè)Dalvik應(yīng)用作為一個(gè)獨(dú)立的Linux進(jìn)程執(zhí)行。獨(dú)立的進(jìn)程可以防止在虛擬機(jī)崩潰的時(shí)候所有程序都被關(guān)閉。Dalvik虛擬機(jī)可以支持已轉(zhuǎn)換為dex(DalvikExecutable)格式的Java應(yīng)用程序的運(yùn)行,dex格式是專(zhuān)為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。通過(guò)ADT(AndroidDevelopmentTools),經(jīng)過(guò)復(fù)雜的編譯,可以把java源代碼轉(zhuǎn)換為dex文件。dex文件是針對(duì)嵌入式系統(tǒng)優(yōu)化的結(jié)果,Dalvik虛擬機(jī)的指令碼并不是標(biāo)準(zhǔn)的Java虛擬機(jī)指令碼,而是使用了自己獨(dú)有的一套指令集。dex文件中共用了很多類(lèi)名稱(chēng)、常量字符串,使它的體積比較小,運(yùn)行效率也比較聞。[0053]具體地,從智能終端獲取一批黑樣本dex文件和白樣本dex文件的方式可以為:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,查找到?yīng)用程序的安裝包;解析安裝包,得到應(yīng)用程序的dex文件;將dex執(zhí)行文件作為黑樣本文件或白樣本文件。例如,可以通過(guò)解析APK(AndroidPackage,Android安裝包)獲得。APK文件其實(shí)是zip格式的一個(gè)壓縮包,但后綴名被修改為apk,通過(guò)UnZip解壓后,就可以得到Dex文件。[0054]如前所述,Android操作系統(tǒng)包括應(yīng)用程序?qū)?app層)和系統(tǒng)框架層(framework層),本發(fā)明重點(diǎn)在于對(duì)app層的研究和改進(jìn)。但是,本領(lǐng)域技術(shù)人員理解,當(dāng)Android啟動(dòng)時(shí),DalvikVM監(jiān)視所有的程序(APK文件)和框架,并且為它們創(chuàng)建一個(gè)依存關(guān)系樹(shù)。DalvikVM通過(guò)這個(gè)依存關(guān)系樹(shù)來(lái)為每個(gè)程序優(yōu)化代碼并存儲(chǔ)在Dalvik緩存(dalvik-cache)中。這樣,所有程序在運(yùn)行時(shí)都會(huì)使用優(yōu)化過(guò)的代碼。當(dāng)一個(gè)程序(或者框架庫(kù))發(fā)生變更,DalvikVM將會(huì)重新優(yōu)化代碼并且再次將其存在緩存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache則是存放data/app生成的dex文件。也就是,本發(fā)明重點(diǎn)在于對(duì)data/app生成的dex文件進(jìn)行的分析和處理,但是應(yīng)該理解,對(duì)于system上的程序生成的dex文件,本發(fā)明的理論和操作同樣適用。[0055]S102:解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu),計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;[0056]仍以dex文件為例,解析文件得到文件包含的所有的函數(shù)信息結(jié)構(gòu)包括:對(duì)dex文件進(jìn)行反編譯,得到dex文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的信息結(jié)構(gòu)。[0057]其中,對(duì)dex文件進(jìn)行反編譯(或稱(chēng)為:反匯編)有多種方式。[0058]第一種方式是,根據(jù)dex文件格式對(duì)dex文件進(jìn)行解析,得到每個(gè)類(lèi)的函數(shù)信息結(jié)構(gòu)體;根據(jù)函數(shù)信息結(jié)構(gòu)體中的字段,確定dex文件的函數(shù)的位置及大小,得到反編譯的函數(shù)信息結(jié)構(gòu)。其中,通過(guò)解析函數(shù)信息結(jié)構(gòu)體,得到指示dex文件的函數(shù)位置的字節(jié)碼數(shù)組字段以及指示dex文件的函數(shù)大小的列表長(zhǎng)度字段,從而確定dex文件的函數(shù)的位置及大小。[0059]例如,根據(jù)dex文件格式,解析dex文件,查找到每個(gè)類(lèi)得函數(shù)信息體。比如函數(shù)信息結(jié)構(gòu)體包含如表1中的字段。[0060]表1【權(quán)利要求】1.一種特征提取方法,其特征在于,包括:從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,獲取一批黑樣本文件和白樣本文件;解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu),計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;判斷各文件中是否包含各個(gè)校驗(yàn)碼對(duì)應(yīng)的函數(shù),從而統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù);根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征,或者,根據(jù)僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù),提取出白樣本特征。2.如權(quán)利要求1所述的方法,其特征在于,在統(tǒng)計(jì)出黑樣本或白樣本之后,還包括:對(duì)特征進(jìn)行優(yōu)選,具體為:為每個(gè)特征針對(duì)所有文件建立向量;初始化一個(gè)集合,依次與每一個(gè)特征的向量做比較;如果集合包括被比較的特征,則保持集合,如果集合不包括被比較的特征,則取集合與被比較向量的并集;依次比較完所有特征的向量,將最終獲得的集合中所包含的特征作為最后保留的特征。3.如權(quán)利要求1所述的方法,其特征在于,在統(tǒng)計(jì)出黑樣本或白樣本之后,還包括:對(duì)特征進(jìn)行優(yōu)選,具體為:針對(duì)不同特征的不同文件集,如果一個(gè)文件集包含另一個(gè)文件集中所有文件,則將具有較大范圍的文件集對(duì)應(yīng)的特征保留,而拋棄具有較小范圍的文件集對(duì)應(yīng)的特征。4.如權(quán)利要求3所述的方法,其特征在于,所述特征包括第一特征和第二特征,包含所述第一特征的文件構(gòu)成第一文件集,包含所述第二特征的文件構(gòu)成第二文件集,如果所述第一文件集包含所述第二文件集中所有的文件,則保留所述第一特征,而拋棄所述第二特征。5.如權(quán)利要求1所述的方法,其特征在于,在所述統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù)之前,還包括:將函數(shù)的校驗(yàn)碼進(jìn)行文件內(nèi)去重。6.如權(quán)利要求5所述的方法,其特征在于,所述將函數(shù)的校驗(yàn)碼進(jìn)行文件內(nèi)去重包括:針對(duì)每一個(gè)文件,如果有多個(gè)函數(shù)具有相同校驗(yàn)碼,則從所述多個(gè)函數(shù)中提取出一個(gè)函數(shù)作為該校驗(yàn)碼的函數(shù)。7.如權(quán)利要求1所述的方法,其特征在于,所述黑樣本文件和白樣本文件均為虛擬機(jī)執(zhí)行文件;所述解析每個(gè)文件,得到每個(gè)文件包含的所有的函數(shù)信息結(jié)構(gòu)包括:對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的信息結(jié)構(gòu)。8.如權(quán)利要求7所述的方法,其特征在于,所述計(jì)算每個(gè)函數(shù)的校驗(yàn)碼包括:利用哈希算法,計(jì)算所述函數(shù)的信息結(jié)構(gòu)體的哈希值,將哈希值作為所述函數(shù)的校驗(yàn)碼。9.如權(quán)利要求7所述的方法,其特征在于,所述對(duì)所述虛擬機(jī)執(zhí)行文件進(jìn)行反編譯,得到虛擬機(jī)執(zhí)行文件所包含的所有函數(shù)經(jīng)過(guò)反編譯的的信息結(jié)構(gòu)包括:根據(jù)虛擬機(jī)執(zhí)行文件格式對(duì)虛擬機(jī)執(zhí)行文件進(jìn)行解析,得到每個(gè)類(lèi)的函數(shù)信息結(jié)構(gòu)體;根據(jù)所述函數(shù)信息結(jié)構(gòu)體中的字段,確定所述虛擬機(jī)執(zhí)行文件的每個(gè)函數(shù)的位置及大小,得到每個(gè)函數(shù)經(jīng)過(guò)反編譯的函數(shù)信息結(jié)構(gòu)。10.一種特征提取裝置,其特征在于,包括:文件獲取單元,用于從智能終端操作系統(tǒng)的應(yīng)用程序?qū)?,獲取一批黑樣本文件和白樣本文件;解析單元,用于解析每個(gè)文件,得到每個(gè)文件包含的所有函數(shù)的信息結(jié)構(gòu);校驗(yàn)碼計(jì)算單元,用于計(jì)算每個(gè)函數(shù)的校驗(yàn)碼;統(tǒng)計(jì)單元,用于判斷各文件中是否包含各個(gè)校驗(yàn)碼對(duì)應(yīng)的函數(shù),從而統(tǒng)計(jì)每個(gè)函數(shù)在黑樣本文件和白樣本文件中出現(xiàn)的次數(shù);提取單元,用于根據(jù)僅在黑樣本文件中出現(xiàn)而未在白樣本文件中出現(xiàn)的函數(shù),提取出黑樣本特征,或者,根據(jù)僅在白樣本文件中出現(xiàn)而未在黑樣本文件中出現(xiàn)的函數(shù),提取出白樣本特征?!疚臋n編號(hào)】G06F21/56GK103761476SQ201310746033【公開(kāi)日】2014年4月30日申請(qǐng)日期:2013年12月30日優(yōu)先權(quán)日:2013年12月30日【發(fā)明者】楊康,陳卓,唐海申請(qǐng)人:北京奇虎科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
江阴市| 若羌县| 三明市| 洪湖市| 玉溪市| 柯坪县| 遂平县| 新乡市| 青铜峡市| 永年县| 翁牛特旗| 固始县| 尖扎县| 浑源县| 文化| 和静县| 铜川市| 本溪| 武邑县| 荣昌县| 渭源县| 肇庆市| 信宜市| 太和县| 海宁市| 丰县| 天峻县| 四子王旗| 晴隆县| 馆陶县| 沂源县| 舞钢市| 临清市| 肇庆市| 甘肃省| 安西县| 武胜县| 沙洋县| 仪征市| 二连浩特市| 建湖县|