專利名稱:一種Android下的軟件快速掃描方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別是一種Android下的軟件快速掃描方法。
技術(shù)背景
目前智能手機、平板電腦等移動設(shè)備已得到較大范圍的普及,智能移動設(shè)備具有通用的操作系統(tǒng),且一般均具有較強的運算、存儲能力,因此用戶在使用智能移動設(shè)備時均會根據(jù)需要自行安裝較多的軟件,在目前的移動設(shè)備操作系統(tǒng)中,Android的市場占有率位列前茅,目前有較多的Android軟件市場提供軟件發(fā)布、安裝服務(wù),例如Android操作系統(tǒng)開發(fā)商、各大手機/平板提供商等等,這些開發(fā)商、供應(yīng)商,甚至論壇等均可提供軟件下載及安裝服務(wù),從而導(dǎo)致Android移動設(shè)備的軟件來源較為復(fù)雜,軟件質(zhì)量參差不齊, 用戶所安裝的軟件可能為病毒、竊聽等惡意軟件,從而導(dǎo)致用戶數(shù)據(jù)的非法泄露,因此,對 Android下的軟件進行安全檢測成為迫切需要解決的問題。
軟件檢測措施中最關(guān)鍵的技術(shù)之一為軟件掃描技術(shù),一般而言,對軟件進行掃描需依次讀取軟件所包括的程序文件,由于Android自身的安全規(guī)則所限,軟件自身的文件不能被第三方軟件所訪問,除非該Android設(shè)備已被破解獲得root權(quán)限,而獲取root權(quán)限后的Android移動設(shè)備具有較大的安全隱患,給病毒、竊聽等惡意軟件帶來更大的方便,所造成的數(shù)據(jù)非法外泄等影響也會更大,因此在未獲取root權(quán)限的Android移動設(shè)備上進行快速軟件掃描成為安全檢測過程中最關(guān)鍵的問題,而且由于Android運行于手機等移動設(shè)備上,移動設(shè)備的電源等資源有限,而目前的軟件掃描過程中占用移動設(shè)備大量的資源,掃描過程中移動設(shè)備不能正常使用。發(fā)明內(nèi)容
本發(fā)明的目的即在于克服現(xiàn)有技術(shù)的不足,提供一種Android下的軟件快速掃描方法,具有可在未破解獲取root權(quán)限的Android設(shè)備上正常運行,掃描速度快,占用移動設(shè)備的資源少,對一個軟件僅需進行一次掃描處理,無需遍歷其所包括的所有程序文件,無需逐一進行掃描處理,掃描處理過程無需現(xiàn)場即時計算簽名值,大大降低了傳統(tǒng)掃描方式所需的處理時間,達到快速與準確的完美結(jié)合,尤其適合于電源資源較緊張的移動設(shè)備等優(yōu)點ο
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)一種Android下的軟件快速掃描方法,它包括以下步驟(1)啟動掃描;(2)通過包管理器I^ackageManager動態(tài)獲取當(dāng)前已安裝軟件的列表;(3)通過指定I^ackageManager. GET_SIGNATURES參數(shù)獲取軟件信息中的簽名值數(shù)據(jù),同時聯(lián)合獲取該軟件的程序名、版本號和權(quán)限信息;(4)對上述簽名值數(shù)據(jù)、程序名、版本號和權(quán)限信息進行綜合匹配處理;(5)是否掃描處理完所有軟件,如沒有則返回步驟(3)繼續(xù)掃描和處理,否則掃描處理結(jié)束。
所述的Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),所述的啟動掃描是在Android系統(tǒng)開機結(jié)束時發(fā)送的Broadcast Receiver中啟動掃描過程;所述的啟動掃描是Android用戶在操作界面中啟動掃描過程。
所述的綜合匹配處理包括以下子步驟(1)在計算機上對樣本軟件進行掃描,獲取簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù);(2)對獲取的簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù)按照自定義規(guī)則進行組合;(3)對組合數(shù)據(jù)進行散列運算,獲得該樣本軟件的特征值;(4)對Android下獲取的簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù)按照同樣的自定義規(guī)則進行組合;(5)對Android下組合數(shù)據(jù)進行散列運算,獲得當(dāng)前軟件的特征值;(6)將該特征值與計算機上計算所得特征值進行比對,若以上兩個特征值相等,則視為找到了該軟件。
本發(fā)明的有益效果是(1)本發(fā)明提供一種Android下的軟件快速掃描方法,可在未破解獲取root權(quán)限的 Android設(shè)備上正常運行;(2)本發(fā)明提供一種Android下的軟件快速掃描方法,具有掃描速度快,占用移動設(shè)備的資源少等優(yōu)點;(3)本發(fā)明提供一種Android下的軟件快速掃描方法,對一個軟件僅需進行一次掃描處理,無需遍歷其所包括的所有程序文件,無需逐一進行掃描處理;(4)本發(fā)明提供一種Android下的軟件快速掃描方法,掃描處理過程無需現(xiàn)場即時計算簽名值,大大降低傳統(tǒng)掃描方式所需的處理時間,達到快速與準確的完美結(jié)合,尤其適合于電源資源較緊張的移動設(shè)備。
圖1為本發(fā)明的流程圖;圖2為本發(fā)明綜合匹配處理流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步的描述,但本發(fā)明的保護范圍不局限于以下所述。
如圖1所示,一種Android下的軟件快速掃描方法,它包括以下步驟(1)在Android系統(tǒng)開機結(jié)束時發(fā)送的Broadcast Receiver中啟動掃描過程,或者在實現(xiàn)程序過程中由Android用戶在操作界面中啟動掃描;(2)通過包管理器I^ackageManager動態(tài)獲取當(dāng)前已安裝軟件的列表,對所有已安裝軟件均進行快速掃描處理;(3)對某個軟件進行掃描時,通過指定I^ackageManager. GET_SIGNATURES參數(shù)獲取軟件信息中的簽名值數(shù)據(jù),同時聯(lián)合獲取該軟件的程序名、版本號和權(quán)限信息;CN 102541733 A(4)根據(jù)不同需要,對上述簽名值數(shù)據(jù)、程序名、版本號和權(quán)限信息進行綜合匹配處理,以達到病毒掃描、安全檢查等目的;(5)是否掃描處理完所有軟件,如沒有則返回步驟(3)繼續(xù)掃描和處理,否則掃描處理結(jié)束。
如圖2所示,所述的綜合匹配處理包括以下子步驟(1)在計算機上對樣本軟件進行掃描,獲取簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù);(2)對獲取的簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù)按照自定義規(guī)則進行組合;(3)對組合數(shù)據(jù)進行散列運算,獲得該樣本軟件的特征值;(4)對Android下獲取的簽名值、程序名、版本號、權(quán)限信息等數(shù)據(jù)按照同樣的自定義規(guī)則進行組合;(5)對Android下組合數(shù)據(jù)進行散列運算,獲得當(dāng)前軟件的特征值;(6)將該特征值與計算機上計算所得特征值進行比對,若以上兩個特征值相等,則視為找到了該軟件。
當(dāng)在Android設(shè)備上安裝軟件時,該軟件的相關(guān)信息均會由系統(tǒng)自動保存,所保存的信息包括當(dāng)前所有已安裝軟件列表、已安裝軟件的程序名稱/版本/簽名值/所需權(quán)限等,在Android上運行軟件時,將自動檢查軟件的各項信息以判斷是否允許該軟件被運行,因此不會出現(xiàn)所記錄信息與實際軟件數(shù)據(jù)不一致的情況。
權(quán)利要求
1.一種Android下的軟件快速掃描方法,其特征在于它包括以下步驟(1)啟動掃描;(2)通過包管理器I^ackageManager動態(tài)獲取當(dāng)前已安裝軟件的列表;(3)通過指定I^ackageManager. GET_SIGNATURES參數(shù)獲取軟件信息中的簽名值數(shù)據(jù),同時聯(lián)合獲取該軟件的程序名、版本號和權(quán)限信息;(4)對上述簽名值數(shù)據(jù)、程序名、版本號和權(quán)限信息進行綜合匹配處理;(5)是否掃描處理完所有軟件,如沒有則返回步驟(3)繼續(xù)掃描和處理,否則掃描處理結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種Android下的軟件快速掃描方法,其特征在于所述的啟動掃描是在Android系統(tǒng)開機結(jié)束時發(fā)送的Broadcast Receiver中啟動掃描過程。
3.根據(jù)權(quán)利要求1所述的一種Android下的軟件快速掃描方法,其特征在于所述的啟動掃描是Android用戶在操作界面中啟動掃描過程。
4.根據(jù)權(quán)利要求1所述的一種Android下的軟件快速掃描方法,其特征在于所述的綜合匹配處理包括以下子步驟(1)在計算機上對樣本軟件進行掃描,獲取簽名值、程序名、版本號、權(quán)限信息;(2)對上述獲取的簽名值、程序名、版本號、權(quán)限信息按照自定義規(guī)則進行組合;(3)對組合數(shù)據(jù)進行散列運算,獲得該樣本軟件的特征值;(4)對Android下獲取的簽名值、程序名、版本號、權(quán)限信息按照同樣的自定義規(guī)則進行組合;(5)對組合數(shù)據(jù)進行散列運算,獲得當(dāng)前軟件的特征值;(6)將該特征值與計算機上計算所得特征值進行比對,若以上兩個特征值相等,則視為找到了該軟件。
全文摘要
本發(fā)明公開了一種Android下的軟件快速掃描方法,它包括以下步驟(1)啟動掃描;(2)通過包管理器PackageManager動態(tài)獲取當(dāng)前已安裝軟件的列表;(3)通過指定PackageManager.GET_SIGNATURES參數(shù)獲取軟件信息中的簽名值數(shù)據(jù),同時聯(lián)合獲取該軟件的程序名、版本號和權(quán)限信息;(4)對上述簽名值數(shù)據(jù)、程序名、版本號和權(quán)限信息進行綜合匹配處理;(5)是否掃描處理完所有軟件,如沒有則返回步驟(3)繼續(xù)掃描和處理,否則掃描處理結(jié)束。本發(fā)明可在未破解獲取root權(quán)限的Android設(shè)備上正常運行,掃描速度快,占用移動設(shè)備資源少,對一個軟件僅需一次掃描處理。
文檔編號G06F11/36GK102541733SQ20111044155
公開日2012年7月4日 申請日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者蔡羅成, 閔波 申請人:成都三零瑞通移動通信有限公司