一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種判斷移動(dòng)終端應(yīng)用程序申請了未使用權(quán)限的判定方法及系統(tǒng),其中方法包括:解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。本發(fā)明還相應(yīng)提供了對應(yīng)的系統(tǒng)結(jié)構(gòu)。通過本發(fā)明的方法,能夠?qū)σ苿?dòng)終端所申請及使用的權(quán)限進(jìn)行判定,識(shí)別出申請但未使用的權(quán)限。
【專利說明】一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)終端應(yīng)用安全領(lǐng)域,特別涉及一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著智能移動(dòng)終端越來越流行,其面臨著更大的信息安全威脅。智移動(dòng)終端本身是一個(gè)權(quán)限分立的操作系統(tǒng),在這類系統(tǒng)中,每個(gè)應(yīng)用都以唯一的一個(gè)系統(tǒng)識(shí)別身份運(yùn)行,而系統(tǒng)的各部分也分別使用各自獨(dú)立的識(shí)別方式,將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。系統(tǒng)的安全保證更多的是依靠權(quán)限機(jī)制提供,權(quán)限能夠限制某個(gè)特定進(jìn)程的特定操作,也可以限制每個(gè)URI權(quán)限對特定數(shù)據(jù)段的訪問。一款安全的良性應(yīng)用程序應(yīng)該根據(jù)自身提供的功能來獲取合理的權(quán)限,而用戶也能夠根據(jù)應(yīng)用程序所需求權(quán)限來簡單的判定這款應(yīng)用是否安全。但是泛濫的第三方應(yīng)用安裝渠道以及應(yīng)用程序無限制的權(quán)限濫用讓很多用戶感到困擾,目前主流的防病毒安全廠商都是只是對應(yīng)用程序中應(yīng)用聲明的權(quán)限進(jìn)行標(biāo)記,而沒有對未使用的權(quán)限進(jìn)行識(shí)別。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供了一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法及系統(tǒng),解決了未使用權(quán)限的判定問題,能夠有效的判斷出應(yīng)用程序所申請的權(quán)限是否均被使用。
[0004]一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法,包括:
解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;
對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;
將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。
[0005]所述的方法中,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
[0006]所述的方法中,所述檢測出已使用的權(quán)限列表具體為:
提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。
[0007]所述的方法中,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。
[0008]一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的系統(tǒng),包括:
解析模塊,用于解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;
檢測模塊,用于對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;
比較模塊,用于將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。[0009]所述的系統(tǒng)中,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
[0010]所述的系統(tǒng)中,所述檢測出已使用的權(quán)限列表具體為:
提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。
[0011]所述的系統(tǒng)中,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。
[0012]本發(fā)明提供一種判斷移動(dòng)終端應(yīng)用程序申請了未使用權(quán)限的判定方法及系統(tǒng),其中方法包括:解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。本發(fā)明還相應(yīng)提供了對應(yīng)的系統(tǒng)結(jié)構(gòu)。通過本發(fā)明的方法,能夠?qū)σ苿?dòng)終端所申請及使用的權(quán)限進(jìn)行判定,識(shí)別出申請但未使用的權(quán)限。
【專利附圖】
【附圖說明】
[0013]為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0014]圖1為本發(fā)明判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法流程圖;
圖2為本發(fā)明判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0015]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
[0016]本發(fā)明提供了一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法及系統(tǒng),解決了未使用權(quán)限的判定問題,能夠有效的判斷出應(yīng)用程序所申請的權(quán)限是否均被使用。
[0017]一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法,如圖1所示,包括:
5101:解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;
5102:對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;
5103:將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。
[0018]所述的方法中,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
[0019]所述的方法中,所述檢測出已使用的權(quán)限列表具體為:
提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。[0020]所述的方法中,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。通過這種匹配方式,能夠提高匹配速度,同時(shí)避免短hash算法導(dǎo)致的誤報(bào)。
[0021]為更好理解本發(fā)明方法內(nèi)容,以android系統(tǒng)為例,說明判定方法。
[0022]由于android系統(tǒng)中應(yīng)用程序?yàn)閍pk文件,因此解析apk安裝包,獲取apk中的AndroidManifest.xml 和 classes, dex 文件;
解析AndroidManifest.xml文件,獲取其中的權(quán)限列表;
解析classes, dex文件,提取其中所有調(diào)用的api ;
將所有調(diào)用的api與權(quán)限特征庫中的特征進(jìn)行短hash及字節(jié)長度匹配,如果匹配成功,則認(rèn)為該權(quán)限已使用,并進(jìn)行標(biāo)記;
在權(quán)限列表中刪除標(biāo)記為已使用的權(quán)限,則剩余權(quán)限為apk申請,但未使用的權(quán)限。
[0023]針對獲取系統(tǒng)調(diào)用api的方法可以為兩種,一種為基于符號的權(quán)限檢測方法,具體為解析dex中method字段,找到系統(tǒng)調(diào)用api ;另一種為基于OpCode字段,對OP段數(shù)據(jù)為0x6e和0x78相應(yīng)的Index提取相應(yīng)的method字段數(shù)據(jù),找到系統(tǒng)api調(diào)用。
[0024]一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的系統(tǒng),如圖2所示,包括:
解析模塊201,用于解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表; 檢測模塊202,用于對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;
比較模塊203,用于將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。
[0025]所述的系統(tǒng)中,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
[0026]所述的系統(tǒng)中,所述檢測出已使用的權(quán)限列表具體為:
提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。
[0027]所述的系統(tǒng)中,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。
[0028]本發(fā)明提供一種判斷移動(dòng)終端應(yīng)用程序申請了未使用權(quán)限的判定方法及系統(tǒng),其中方法包括:解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表;對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表;將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。本發(fā)明還相應(yīng)提供了對應(yīng)的系統(tǒng)結(jié)構(gòu)。通過本發(fā)明的方法,能夠?qū)σ苿?dòng)終端所申請及使用的權(quán)限進(jìn)行判定,識(shí)別出申請但未使用的權(quán)限。
[0029]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0030]本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
[0031]雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
【權(quán)利要求】
1.一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的方法,其特征在于,包括: 解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表; 對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表; 將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。
2.如權(quán)利要求1所述的方法,其特征在于,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
3.如權(quán)利要求1所述的方法,其特征在于,所述檢測出已使用的權(quán)限列表具體為: 提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。
4.如權(quán)利要求3所述的方法,其特征在于,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。
5.一種判定移動(dòng)終端應(yīng)用程序申請未使用權(quán)限的系統(tǒng),其特征在于,包括: 解析模塊,用于解析待判定的應(yīng)用程序,獲取所述應(yīng)用程序申請的所有權(quán)限列表; 檢測模塊,用于對所述應(yīng)用程序進(jìn)行反匯編,檢測出已使用的權(quán)限列表; 比較模塊,用于將申請的所有權(quán)限列表與已使用的權(quán)限列表比對,所有權(quán)限列表中除已使用權(quán)限列表中的權(quán)限外,即為未使用權(quán)限。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述對所述應(yīng)用程序進(jìn)行反匯編為,對所述應(yīng)用程序中的主應(yīng)用程序進(jìn)行反匯編。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述檢測出已使用的權(quán)限列表具體為: 提取應(yīng)用程序中所有調(diào)用的應(yīng)用程序接口,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫進(jìn)行匹配,如果匹配成功,則記錄所述權(quán)限特征庫中的權(quán)限為已使用權(quán)限。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,將所述調(diào)用的應(yīng)用程序接口與權(quán)限特征庫匹配方式為:通過短哈希及字節(jié)長度進(jìn)行匹配,如果短哈希值和字符串長度均相同,則認(rèn)為匹配成功;所述短哈希為32bit的哈希值。
【文檔編號】G06F9/445GK103902330SQ201310725555
【公開日】2014年7月2日 申請日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】胡雪飛, 潘宣辰, 肖新光 申請人:武漢安天信息技術(shù)有限責(zé)任公司