一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種對(duì)Android?ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng),首先,對(duì)oat文件進(jìn)行格式解析,提取oatheader,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息;針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段;基于所述oatheader和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段;對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。從而解決目前對(duì)于oat代碼數(shù)據(jù)無(wú)法進(jìn)行惡意代碼有效檢測(cè)的問題。
【專利說(shuō)明】—種對(duì)Andro i d ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)終端惡意代碼檢測(cè)【技術(shù)領(lǐng)域】,尤其涉及一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,智能移動(dòng)終端操作系統(tǒng)平臺(tái)也在快速的發(fā)展和不斷的優(yōu)化,目前Android系統(tǒng)已經(jīng)從早期的1.6版本,逐步發(fā)展到目前最新的4.4的公開版本。
[0003]在Android 4.4的公開版本中,其引入了最新設(shè)計(jì)的運(yùn)行時(shí)環(huán)境ART,并引入了一種新的程序代碼執(zhí)行格式和形態(tài),被命名為oat文件。其為基于ELF文件格式的自定義文件格式。ART的出現(xiàn),形成了一種全新的Android系統(tǒng)上的運(yùn)行機(jī)制和代碼數(shù)據(jù)存儲(chǔ)機(jī)制,也同時(shí)形成了 一種全新的惡意代碼數(shù)據(jù)形態(tài)。
[0004]目前常見的Android惡意代碼檢測(cè)方法,主要是針對(duì)Android上的Apk文件,dex文件,odex文件,常見的普通ELF文件進(jìn)行檢測(cè)來(lái)實(shí)現(xiàn)惡意代碼檢測(cè)。而隨著Android ART的逐步推廣,可能出現(xiàn)oat文件形態(tài)的惡意代碼,目前的檢測(cè)方法均無(wú)法進(jìn)行有效的檢測(cè)。同時(shí)若采用文件片段hash或是文件完整的hash的方法來(lái)對(duì)oat進(jìn)行檢測(cè),則很難實(shí)現(xiàn)高效的啟發(fā)式的檢出能力,無(wú)法有效的控制規(guī)則的集合和質(zhì)量。
【發(fā)明內(nèi)容】
[0005]針對(duì)上述技術(shù)問題,本發(fā)明提供了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng),該發(fā)明通過(guò)對(duì)oat文件進(jìn)行格式解析,提取所需的數(shù)據(jù)段內(nèi)容,利用惡意代碼檢測(cè)方法對(duì)其進(jìn)行檢測(cè),并輸出檢測(cè)結(jié)果,該發(fā)明解決了目前的惡意代碼檢測(cè)方法對(duì)于oat無(wú)法檢測(cè)的問題。
[0006]本發(fā)明采用如下方法來(lái)實(shí)現(xiàn):一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法,包括:
對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息;
針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段;
基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段;
對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
[0007]進(jìn)一步地,所述針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段為:針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段、oatexec數(shù)據(jù)段和oatlastword數(shù)據(jù)段。
[0008]進(jìn)一步地,所述對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)為:對(duì)所述dex代碼數(shù)據(jù)段、所述thumb2指令代碼數(shù)據(jù)段和oatlastword數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)。
[0009]進(jìn)一步地,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
[0010]其中,所述thumb2指令代碼并不絕對(duì),可以隨著指令格式的變化,而獲取其他指令格式的代碼。
[0011]本發(fā)明采用如下系統(tǒng)來(lái)實(shí)現(xiàn):一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的系統(tǒng),包括:
格式解析模塊,用于對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息;
第一數(shù)據(jù)提取模塊,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)
段;
第二數(shù)據(jù)提取模塊,用于基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段;
檢測(cè)模塊,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
[0012]其中,使用的惡意代碼檢測(cè)方法可以是現(xiàn)有的任何適用的檢測(cè)方法。
[0013]進(jìn)一步地,所述第一數(shù)據(jù)提取模塊,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段之外,還包括:提取出oatlastword數(shù)據(jù)段。
[0014]進(jìn)一步地,所述檢測(cè)模塊,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果,還包括:對(duì)所述oatlastword數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè)。
[0015]進(jìn)一步地,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
[0016]綜上所述,本發(fā)明提供了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng),本發(fā)明基于對(duì)oat文件的格式解析,獲取oat header和文件的數(shù)據(jù)結(jié)構(gòu)信息,并利用所述oat header和數(shù)據(jù)結(jié)構(gòu)信息,提取oatdata數(shù)據(jù)段中的dex代碼數(shù)據(jù)段,提取oatexec數(shù)據(jù)段中的thumb2指令代碼數(shù)據(jù)段,并利用現(xiàn)有的惡意代碼檢測(cè)方法對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行檢測(cè),并輸出檢測(cè)結(jié)果。該發(fā)明針對(duì)oat的文件結(jié)構(gòu)的格式特點(diǎn)和原有的Android惡意代碼檢測(cè)技術(shù),倉(cāng)Il造性的解決了 Android ART運(yùn)行時(shí)代碼oat的惡意代碼檢測(cè)的方法,解決了當(dāng)前并未有效針對(duì)oat進(jìn)行惡意代碼檢測(cè)方法的問題。
【專利附圖】
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明提供的對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法流程圖;
圖2為本發(fā)明提供的對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的系統(tǒng)結(jié)構(gòu)圖?!揪唧w實(shí)施方式】
[0019]本發(fā)明給出了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng),為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明:
本發(fā)明首先提供了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法,如圖1所示,包括:
SlOl對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息; S102針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段;
S103基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段;
S104對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
[0020]優(yōu)選地,所述針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段為:針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段、oatexec數(shù)據(jù)段和oatlastword數(shù)據(jù)段。
[0021 ] 更為優(yōu)選地,所述對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)為:對(duì)所述dex代碼數(shù)據(jù)段、所述thumb2指令代碼數(shù)據(jù)段和oatlastword數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)。
[0022]優(yōu)選地,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
[0023]本發(fā)明還提供了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的系統(tǒng),如圖2所示,包括:
格式解析模塊201,用于對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息;
第一數(shù)據(jù)提取模塊202,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段;
第二數(shù)據(jù)提取模塊203,用于基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段;
檢測(cè)模塊204,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
[0024]其中,使用的惡意代碼檢測(cè)方法可以是現(xiàn)有的任何適用的檢測(cè)方法。
[0025]優(yōu)選地,所述第一數(shù)據(jù)提取模塊,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段之外,還包括:提取出oatlastword數(shù)據(jù)段。
[0026]更為優(yōu)選地,所述檢測(cè)模塊,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果,還包括:對(duì)所述oatlastword數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè)。
[0027]優(yōu)選地,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
[0028]如上所述,本發(fā)明給出了一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法及系統(tǒng)的具體實(shí)施例,目前,傳統(tǒng)的針對(duì)移動(dòng)終端的惡意代碼檢測(cè)方法主要是針對(duì)apk文件、dex文件或者odex文件等,并不存在針對(duì)ART運(yùn)行時(shí)下的oat文件的檢測(cè)方法。本發(fā)明基于oat文件的結(jié)構(gòu)信息,獲取oatdata數(shù)據(jù)段、oatexec數(shù)據(jù)段或者還有oatlastword數(shù)據(jù)段,并進(jìn)一步提取重要數(shù)據(jù)信息進(jìn)行檢測(cè),該方法可以克服傳統(tǒng)檢測(cè)方法的限制,有效檢測(cè)ART運(yùn)行時(shí)的oat文件下的惡意代碼,并形成檢出結(jié)果輸出。
[0029]以上實(shí)施例用以說(shuō)明而非限制本發(fā)明的技術(shù)方案。不脫離本發(fā)明精神和范圍的任何修改或局部替換,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的方法,其特征在于,包括: 對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息; 針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段; 基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段; 對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,所述針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段為:針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段、oatexec數(shù)據(jù)段和oatlastword 數(shù)據(jù)段。
3.如權(quán)利要求2所述的方法,其特征在于,所述對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)為:對(duì)所述dex代碼數(shù)據(jù)段、所述thumb2指令代碼數(shù)據(jù)段和oatlastword數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè)。
4.如權(quán)利要求1所述的方法,其特征在于,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
5.一種對(duì)Android ART運(yùn)行時(shí)代碼進(jìn)行惡意代碼檢測(cè)的系統(tǒng),其特征在于,包括: 格式解析模塊,用于對(duì)oat文件進(jìn)行格式解析,提取oat header,并獲取oat文件的數(shù)據(jù)結(jié)構(gòu)信息; 第一數(shù)據(jù)提取模塊,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段; 第二數(shù)據(jù)提取模塊,用于基于所述oat header和所述數(shù)據(jù)結(jié)構(gòu)信息,從oatdata數(shù)據(jù)段中提取dex代碼數(shù)據(jù)段,從oatexec數(shù)據(jù)段中提取thumb2指令代碼數(shù)據(jù)段; 檢測(cè)模塊,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)提取模塊,用于針對(duì)所述oat文件,提取出oatdata數(shù)據(jù)段和oatexec數(shù)據(jù)段之外,還包括:提取出oatlastword數(shù)據(jù)段。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述檢測(cè)模塊,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè),并輸出檢測(cè)結(jié)果,還包括:對(duì)所述oatlastword數(shù)據(jù)段進(jìn)行惡意代碼檢測(cè)。
8.如權(quán)利要求5所述的系統(tǒng),其特征在于,對(duì)所述dex代碼數(shù)據(jù)段和所述thumb2指令代碼數(shù)據(jù)段分別進(jìn)行惡意代碼檢測(cè),輸出檢測(cè)結(jié)果包括:當(dāng)其中之一檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者都檢出惡意代碼,則認(rèn)為所述oat文件存在惡意代碼;或者當(dāng)兩者的檢測(cè)結(jié)果滿足設(shè)定條件時(shí),則認(rèn)為所述oat文件存在惡意代碼。
【文檔編號(hào)】G06F21/56GK103914654SQ201310725051
【公開日】2014年7月9日 申請(qǐng)日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】潘宣辰, 肖新光 申請(qǐng)人:武漢安天信息技術(shù)有限責(zé)任公司