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