一種通過Android模擬器檢測病毒程序的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體公開了一種通過Android模擬器檢測病毒程序的方法及系統(tǒng)。該方法包括以下步驟:(1)提供隨機(jī)的模擬器基本信息給所述可疑APK程序;(2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。該系統(tǒng)包括相對(duì)應(yīng)的隨機(jī)信息提供模塊和運(yùn)行檢測模塊。本發(fā)明通過提供隨機(jī)的模擬器基本信息給所述可疑APK程序,使其判定的運(yùn)行環(huán)境非模擬器,而不會(huì)將一些惡意行為程序關(guān)閉,從而無法逃過模擬器的檢測,進(jìn)而提高病毒程序的檢出率。
【專利說明】—種通過Android模擬器檢測病毒程序的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種通過Android模擬器檢測病毒程序的方法及系統(tǒng)。
【背景技術(shù)】
[0002]Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于便攜設(shè)備,如智能手機(jī)和平板電腦。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年由Google收購注資,并組建開放手機(jī)聯(lián)盟開發(fā)改良隨后,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。第一部Android智能手機(jī)發(fā)布于2008年10月。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額,中國市場占有率為90%。
[0003]Android模擬器是Android SDKCSoftware Development Kit,即軟件開發(fā)工具包)自帶一個(gè)移動(dòng)模擬器。它是一個(gè)可以運(yùn)行在電腦上的虛擬設(shè)備。Android模擬器可以不需使用物理設(shè)備即可預(yù)覽、開發(fā)和測試Android應(yīng)用程序。
[0004]APK 是 AndroidPackage 的縮寫,即 Android 安裝包(apk)。APK 是類似 SymbianSis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機(jī)中執(zhí)行即可安裝。apk文件和sis—樣,把a(bǔ)ndroid sdk編譯的工程打包成一個(gè)安裝程序文件,格式為apk。APK文件其實(shí)是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex 文件,Dex 是 Dalvik VM executes 的全稱,即 Android Dalvik 執(zhí)行程序,并非 Java ME的字節(jié)碼而是Dalvik字節(jié)碼。
[0005]為了檢測一個(gè)APK程序是否為病毒程序,目前的做法是將其安裝到Android模擬器中運(yùn)行,通過判斷其運(yùn)行行為是否具有惡意行為,比如盜取手機(jī)號(hào)碼、手機(jī)型號(hào)、手機(jī)ID號(hào)、SM卡編號(hào)等行為。但通過 申請(qǐng)人:研究發(fā)現(xiàn)上述方法病毒程序的檢出率越來越低,已經(jīng)不能適應(yīng)現(xiàn)有病毒的發(fā)展。
[0006]通過 申請(qǐng)人:的仔細(xì)研究發(fā)現(xiàn),現(xiàn)有模擬器的基本信息都是一些特定的信息,比如手機(jī)號(hào)為13000000000。病毒程序在運(yùn)行時(shí)首先通過獲取模擬器中的這些基本信息,然后比對(duì)這些基本信息與其收集的模擬器常用的特定信息進(jìn)行比對(duì),如匹配則判定其運(yùn)行的當(dāng)前環(huán)境為模擬器。然后,將其惡意行為部分的程序關(guān)閉,進(jìn)而逃過模擬器的檢測。
【發(fā)明內(nèi)容】
[0007]為了上述問題,本發(fā)明的目的在于提供一種通過Android模擬器檢測病毒程序的方法及系統(tǒng),以提高病毒程序的檢出率。
[0008]為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取的技術(shù)方案如下:
[0009]一種通過Android模擬器檢測病毒程序的方法,其特征在于包括以下步驟:
[0010](I)提供隨機(jī)的模擬器基本信息給所述可疑APK程序;[0011](2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0012]進(jìn)一步的,所述第(1)步具體是:直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序。
[0013]進(jìn)一步的,所述第(1)步具體包括以下子步驟:
[0014](11)將所述可疑APK程序進(jìn)行反編譯;
[0015](12)在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API);
[0016](13)修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息;
[0017]( 14)重新編譯所述程序代碼。
[0018]進(jìn)一步的,所述第(1)步具體是:通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序。
[0019]一種通過Android模擬器檢測病毒程序的系統(tǒng),包括以下模塊:
[0020]隨機(jī)信息提供模塊,用于提供隨機(jī)的模擬器基本信息給所述可疑APK程序;
[0021]運(yùn)行檢測模塊,用于在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意彳丁為。
[0022]進(jìn)一步的,所述隨機(jī)信息提供模塊提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體是:直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序。
[0023]進(jìn)一步的,所述隨機(jī)信息提供模塊具體包括以下子模塊:
[0024]反編譯模塊,將所述可疑APK程序進(jìn)行反編譯;
[0025]查找模塊,在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API);
[0026]修改模塊,修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息;
[0027]編譯模塊,重新編譯所述程序代碼。
[0028]進(jìn)一步的,所述隨機(jī)信息提供模塊提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體是:通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序。
[0029]本發(fā)明通過提供隨機(jī)的模擬器基本信息給所述可疑APK程序,使其判定的運(yùn)行環(huán)境非模擬器,而不會(huì)將一些惡意行為程序關(guān)閉,從而無法逃過模擬器的檢測,進(jìn)而提高病毒程序的檢出率。
【專利附圖】
【附圖說明】
[0030]此【專利附圖】
【附圖說明】所提供的圖片用來輔助對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定,在附圖中:
[0031]圖1是本發(fā)明方法對(duì)應(yīng)的流程圖;
[0032]圖2是本發(fā)明系統(tǒng)對(duì)應(yīng)的框圖;
[0033]圖3是實(shí)施例3第(I)步的流程圖;
[0034]圖4是實(shí)施例3隨機(jī)信息提供模塊的框圖?!揪唧w實(shí)施方式】
[0035]實(shí)施例1
[0036]如圖1所示,本實(shí)施例公開了一種通過Android模擬器檢測病毒程序的方法,包括以下步驟:
[0037]( I)提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體可以直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序;
[0038](2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0039]如圖2所示,本實(shí)施例還公開了一種與上述方法對(duì)應(yīng)的通過Android模擬器檢測病毒程序的系統(tǒng),其包括以下模塊:
[0040]隨機(jī)信息提供模塊1,用于提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體可以直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序;
[0041]運(yùn)行檢測模塊2,用于在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0042]其中,所不基本信息包括手機(jī)號(hào)、IMEI等,IMEI (International MobileEquipment Identity)是國際移動(dòng)設(shè)備身份碼的縮寫,國際移動(dòng)裝備辨識(shí)碼,是由15位數(shù)字組成的"電子串號(hào)",它與每臺(tái)手機(jī)一一對(duì)應(yīng),而且該碼是全世界唯一的。每一只手機(jī)在組裝完成后都將被賦予一個(gè)全球唯一的一組號(hào)碼,這個(gè)號(hào)碼從生產(chǎn)到交付使用都將被制造生產(chǎn)的廠商所記錄。
[0043]因?yàn)椴《境绦蛲ㄟ^獲取模擬器的上述基本信息來判斷其運(yùn)行的環(huán)境,本實(shí)施例就是基于此研究,將其基本信息隨機(jī)化,而不是某個(gè)固定的值,以騙過病毒程序的反偵查,從而使其在運(yùn)行過程中不會(huì)關(guān)閉其惡意行為相關(guān)程序,進(jìn)而提高本實(shí)施例的病毒檢出率。
[0044]實(shí)施例2
[0045]如圖1所示,本實(shí)施例公開了一種通過Android模擬器檢測病毒程序的方法,包括以下步驟:
[0046]( I)提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體可以通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序;
[0047](2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0048]如圖2所示,本實(shí)施例還公開了一種與上述方法對(duì)應(yīng)的通過Android模擬器檢測病毒程序的系統(tǒng),其包括以下模塊:
[0049]隨機(jī)信息提供模塊1,用于提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體可以通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序;所述的鉤掛,即是替換的意思;
[0050]運(yùn)行檢測模塊2,用于在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0051]本實(shí)施例不再修改模擬器本身的基本信息,而是通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序,以騙過病毒程序的反偵查,從而使其在運(yùn)行過程中不會(huì)關(guān)閉其惡意行為相關(guān)程序,進(jìn)而提高本實(shí)施例的病毒檢出率。
[0052]實(shí)施例3[0053]如圖1所示,本實(shí)施例公開了一種通過Android模擬器檢測病毒程序的方法,包括以下步驟:
[0054](I)提供隨機(jī)的模擬器基本信息給所述可疑APK程序;
[0055](2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0056]如圖3所示,所述第(I)步具體包括以下子步驟:
[0057](11)將所述可疑APK程序進(jìn)行反編譯;
[0058](12)在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API);
[0059](13)修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息;
[0060]( 14)重新編譯所述程序代碼。
[0061]如圖2所示,本實(shí)施例還公開了一種與上述方法對(duì)應(yīng)的通過Android模擬器檢測病毒程序的系統(tǒng),其包括以下模塊:
[0062]隨機(jī)信息提供模塊1,用于提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體可以通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序;
[0063]運(yùn)行檢測模塊2,用于在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
[0064]如圖4所示,所述隨機(jī)信息提供模塊具體包括以下子模塊:
[0065]反編譯模塊11,將所述可疑APK程序進(jìn)行反編譯;
[0066]查找模塊12,在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API);
[0067]修改模塊13,修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息;
[0068]編譯模塊14,重新編譯所述程序代碼。
[0069]本實(shí)施例不再修改模擬器本身的基本信息,而是修改APK程序本身給其提供隨機(jī)的模擬器基本信息,以騙過病毒程序的反偵查,從而使其在運(yùn)行過程中不會(huì)關(guān)閉其惡意行為相關(guān)程序,進(jìn)而提聞本實(shí)施例的病毒檢出率。
[0070]上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例,應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)無需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思做出諸多修改和變化。因此,凡本【技術(shù)領(lǐng)域】中技術(shù)人員依本發(fā)明構(gòu)思在現(xiàn)有技術(shù)基礎(chǔ)上通過邏輯分析、推理或者根據(jù)有限的實(shí)驗(yàn)可以得到的技術(shù)方案,均應(yīng)該在由本權(quán)利要求書所確定的保護(hù)范圍之中。
【權(quán)利要求】
1.一種通過Android模擬器檢測病毒程序的方法,其特征在于包括以下步驟: (1)提供隨機(jī)的模擬器基本信息給所述可疑APK程序; (2)在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
2.根據(jù)權(quán)利要求1所述的通過Android模擬器檢測病毒程序的方法,其特征在于: 所述第(1)步具體是:直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序。
3.根據(jù)權(quán)利要求1所述的通過Android模擬器檢測病毒程序的方法,其特征在于,所述第(1)步具體包括以下子步驟: (11)將所述可疑APK程序進(jìn)行反編譯; (12)在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API); (13)修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息; (14)重新編譯所述程序代碼。
4.根據(jù)權(quán)利要求1所述的通過Android模擬器檢測病毒程序的方法,其特征在于: 所述第(1)步具體是:通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API ),返回隨機(jī)的模擬器基本信息給所述可疑APK程序。
5.一種通過Android模擬器檢測病毒程序的系統(tǒng),其特征在于包括以下模塊: 隨機(jī)信息提供模塊,用于提供隨機(jī)的模擬器基本信息給所述可疑APK程序; 運(yùn)行檢測模塊,用于在模擬器中運(yùn)行所述可疑APK程序檢測其運(yùn)行過程是否具有惡意行為。
6.根據(jù)權(quán)利要求5所述的通過Android模擬器檢測病毒程序的系統(tǒng),其特征在于,所述隨機(jī)信息提供模塊提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體是: 直接根據(jù)隨機(jī)算法將模擬器基本信息隨機(jī)化以提供給所述可疑APK程序。
7.根據(jù)權(quán)利要求5所述的通過Android模擬器檢測病毒程序的系統(tǒng),其特征在于,所述隨機(jī)信息提供模塊具體包括以下子模塊: 反編譯模塊,將所述可疑APK程序進(jìn)行反編譯; 查找模塊,在反編譯出的程序代碼中查找出能夠獲取模擬器信息的應(yīng)用程序接口(API); 修改模塊,修改所述應(yīng)用程序接口(API)的返回值,以使所述可疑APK程序獲取一個(gè)隨機(jī)的模擬器基本信息; 編譯模塊,重新編譯所述程序代碼。
8.根據(jù)權(quán)利要求5所述的通過Android模擬器檢測病毒程序的系統(tǒng),其特征在于所述隨機(jī)信息提供模塊提供隨機(jī)的模擬器基本信息給所述可疑APK程序,具體是: 通過鉤掛系統(tǒng)函數(shù)的應(yīng)用程序接口(API),返回隨機(jī)的模擬器基本信息給所述可疑APK程序。
【文檔編號(hào)】G06F21/56GK103902891SQ201210567869
【公開日】2014年7月2日 申請(qǐng)日期:2012年12月24日 優(yōu)先權(quán)日:2012年12月24日
【發(fā)明者】林堅(jiān)明, 李敏怡, 傅盛 申請(qǐng)人:珠海市君天電子科技有限公司, 北京金山安全軟件有限公司, 貝殼網(wǎng)際(北京)安全技術(shù)有限公司, 北京金山網(wǎng)絡(luò)科技有限公司