一種Android程序行為的監(jiān)控方法及監(jiān)控系統(tǒng)的制作方法
【專利摘要】本發(fā)明屬于計算機【技術領域】,具體公開了一種Android程序行為的監(jiān)控方法及監(jiān)控系統(tǒng)。該方法包括以下步驟:通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中;通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。該系統(tǒng)包括對應的注入模塊和監(jiān)控模塊。本發(fā)明利用So動態(tài)庫文件的代理函數(shù)替換現(xiàn)有的系統(tǒng)函數(shù),進而在完成現(xiàn)有系統(tǒng)函數(shù)相同功能的情況下,記錄其運行行為,可使得程序分析效率和準確率都更高。不僅如此,難以閱讀的加密程序,在其運行時其相關行為則無處遁形。因此,本發(fā)明相對于現(xiàn)有分析方法分析效率和準確率都更高。
【專利說明】—種Android程序行為的監(jiān)控方法及監(jiān)控系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于計算機【技術領域】,具體涉及一種Android程序行為的監(jiān)控方法及監(jiān)控系統(tǒng)。
【背景技術】
[0002]Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于便攜設備,如智能手機和平板電腦。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年由Google收購注資,并組建開放手機聯(lián)盟開發(fā)改良隨后,逐漸擴展到平板電腦及其他領域上。第一部Android智能手機發(fā)布于2008年10月。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機操作系統(tǒng)市場76%的份額,中國市場占有率為90%。
[0003]APK 是 Android Package 的縮寫,即 Android 安裝包(APK)。APK 是類似 SymbianSis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執(zhí)行即可安裝。APK文件和sis—樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。APK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex 文件,Dex 是 Dalvik VM executes 的全稱,即 Android Dalvik 執(zhí)行程序,并非 Java ME的字節(jié)碼而是Dalvik字節(jié)碼。
[0004]目前,對于未知的可疑的APK程序,是采用人工靜態(tài)分析的方法,分析其運行時是否具有惡意行為,從而辨別該未知程序是否為病毒程序。此種方法,不僅分析速度慢,而且對于一些加密程序無法分析。
【發(fā)明內容】
[0005]為了解決上述問題,本發(fā)明的目的在于提供一種Android程序行為的監(jiān)控方法及監(jiān)控系統(tǒng),以提高Android程序行為的分析效率。
[0006]為了實現(xiàn)上述發(fā)明目的,得到了以下技術方案:
[0007]一種Android程序行為的監(jiān)控方法,包括以下步驟:
[0008]通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中;
[0009]通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
[0010]進一步的,所述通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為,具體是:
[0011]通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址;
[0012]啟動運行所述可疑Android程序;
[0013]當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。[0014]一種Android程序行為的監(jiān)控系統(tǒng),包括以下模塊:
[0015]注入模塊,用于通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中;
[0016]監(jiān)控模塊,用于通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
[0017]進一步的,所述監(jiān)控模塊包括以下子模塊:
[0018]修改子模塊,用于通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址;
[0019]啟動子模塊,用于啟動運行所述可疑Android程序;
[0020]行為記錄模塊,用于當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。
[0021]本發(fā)明利用So動態(tài)庫文件的代理函數(shù)替換現(xiàn)有的系統(tǒng)函數(shù),進而在完成現(xiàn)有系統(tǒng)函數(shù)相同功能的情況下,記錄其運行行為,可使得程序分析效率和準確率都更高。不僅如此,難以閱讀的加密程序,在其運行時其相關行為則無處遁形。因此,本發(fā)明相對于現(xiàn)有分析方法分析效率和準確率都更高。
【專利附圖】
【附圖說明】
[0022]此【專利附圖】
【附圖說明】所提供的圖片用來輔助對本發(fā)明的進一步理解,構成本申請的一部分,并不構成對本發(fā)明的不當限定,在附圖中:
[0023]圖1是本發(fā)明方法對應的流程圖;
[0024]圖2是圖1第(2)步的流程圖;
[0025]圖3是本發(fā)明系統(tǒng)對應的框圖;
[0026]圖4是本發(fā)明系統(tǒng)監(jiān)控模塊的框圖。
【具體實施方式】
[0027]實施例1
[0028]如圖1所示,本實施例公開了一種Android程序行為的監(jiān)控方法,包括以下步驟:
[0029](I)通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中;該So動態(tài)庫文件包括掛鉤導入表程序和代理函數(shù);其中,掛鉤導入表程序的作用就是將調用函數(shù)的地址改為代理函數(shù)的地址;其中,代理函數(shù)是與系統(tǒng)函數(shù)功能相同的函數(shù),該代理函數(shù)在執(zhí)行系統(tǒng)函數(shù)相同功能的同時,還可記錄該代理函數(shù)的運行行為;
[0030](2)通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
[0031]如圖2所示,第(2)步通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為,具體是:
[0032](21)通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址;導入表就是用來記錄各個系統(tǒng)函數(shù)調用地址的,本步驟將其修改為代理函數(shù)的地址,可實現(xiàn)代理原來系統(tǒng)函數(shù)的目的;
[0033](22)啟動運行所述可疑Android程序;
[0034](23)當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。
[0035]如圖3所示,本實施例還公開了一種與上述方法對應的系統(tǒng),包括以下模塊:[0036]注入模塊1,用于通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中;
[0037]監(jiān)控模塊2,用于通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
[0038]如圖4所示,所述監(jiān)控模塊2包括以下子模塊:
[0039]修改子模塊21,用于通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址;
[0040]啟動子模塊22,用于啟動運行所述可疑Android程序;
[0041]行為記錄模塊23,用于當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。
[0042]本實施例通過So動態(tài)庫文件的代理函數(shù)替換現(xiàn)有的系統(tǒng)函數(shù),進而在完成現(xiàn)有系統(tǒng)函數(shù)相同功能的情況下,記錄其運行行為,可使得程序分析效率和準確率都更高。不僅如此,難以閱讀的加密程序,在其運行時其相關行為則無處遁形。因此,本發(fā)明相對于現(xiàn)有分析方法分析效率和準確率都更高。
[0043]以上詳細描述了本發(fā)明的較佳具體實施例,應當理解,本領域的普通技術無需創(chuàng)造性勞動就可以根據(jù)本發(fā)明的構思做出諸多修改和變化。因此,凡本【技術領域】中技術人員依本發(fā)明構思在現(xiàn)有技術基礎上通過邏輯分析、推理或者根據(jù)有限的實驗可以得到的技術方案,均應該在由本權利要求書所確定的保護范圍之中。
【權利要求】
1.一種Android程序行為的監(jiān)控方法,其特征在于包括以下步驟: 通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中; 通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
2.根據(jù)權利要求1所述的Android程序行為的監(jiān)控方法,其特征在于,所述通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為,具體是: 通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址; 啟動運行所述可疑Android程序; 當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。
3.一種Android程序行為的監(jiān)控系統(tǒng),其特征在于包括以下模塊: 注入模塊,用于通過注入程序將So動態(tài)庫文件注入到系統(tǒng)所有進程中; 監(jiān)控模塊,用于通過所述So動態(tài)庫文件監(jiān)控系統(tǒng)中運行的Android程序行為。
4.根據(jù)權利要求3所述的Android程序行為的監(jiān)控系統(tǒng),其特征在于,所述監(jiān)控模塊包括以下子模塊: 修改子模塊,用于通過So動態(tài)庫文件中的掛鉤導入表程序將系統(tǒng)導入表中記錄的系統(tǒng)函數(shù)地址修改為代理函數(shù)地址; 啟動子模塊,用于啟動運行所述可疑Android程序; 行為記錄模塊,用于當所述可疑Android程序運行過程中調用系統(tǒng)函數(shù)時,通過代理函數(shù)代替所述系統(tǒng)函數(shù)執(zhí)行相應的動作,并記錄相應的程序行為。
【文檔編號】G06F21/56GK103902890SQ201210567868
【公開日】2014年7月2日 申請日期:2012年12月24日 優(yōu)先權日:2012年12月24日
【發(fā)明者】林堅明, 楊啟東 申請人:珠海市君天電子科技有限公司, 北京金山安全軟件有限公司, 貝殼網(wǎng)際(北京)安全技術有限公司, 北京金山網(wǎng)絡科技有限公司