一種終端應(yīng)用的保護(hù)方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種終端應(yīng)用的保護(hù)方法,該方法包括:加密終端應(yīng)用的應(yīng)用屬性;利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;當(dāng)接收到啟動所述終端應(yīng)用的指令時,調(diào)用加密后的應(yīng)用屬性,對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,調(diào)用所述終端應(yīng)用主體邏輯。本發(fā)明同時還公開了一種終端應(yīng)用的保護(hù)裝置。采用本發(fā)明的方案,能夠有效的防止終端應(yīng)用被篡改,減少惡意廣告嵌入。
【專利說明】一種終端應(yīng)用的保護(hù)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及終端應(yīng)用保護(hù)技術(shù),具體涉及一種基于開放代碼平臺的終端應(yīng)用的保護(hù)方法及裝置。
【背景技術(shù)】
[0002]安卓Android平臺的應(yīng)用安全性一直廣受垢病,由于國內(nèi)Android應(yīng)用市場審核機(jī)制的不健全,以及JAVA語言的可被反編譯特性,國內(nèi)很多開發(fā)者均通過惡意破解、反編譯原著應(yīng)用,在修改原終端應(yīng)用的包名與廣告鑒權(quán)信息后,重新打包終端應(yīng)用并發(fā)布來進(jìn)行非法盈利,對原創(chuàng)開發(fā)者利益損害非常巨大,嚴(yán)重打擊原創(chuàng)開發(fā)者的積極性。國內(nèi)目前普遍使用的Android安全技術(shù)是通過混淆源代碼來增加反編譯后的讀碼難度,但僅靠混淆代碼的方式在國內(nèi)應(yīng)用市場很難起到防盜版的作用。
[0003]目前,盜版應(yīng)用主要采用以下方式:
[0004]針對廣告鑒權(quán)信息在AndroidManifest.xml文件中的應(yīng)用,盜版者在反編譯應(yīng)用后可以直接修改明文來篡改廣告鑒權(quán),這種方式的應(yīng)用最不安全,盜版難度極低;
[0005]針對廣告鑒權(quán)信息在JAVA代碼中的情況,在通過匯編器Smali反編譯終端應(yīng)用中的Android安裝包(APK, AndroidPackage)安裝文件中的classes, dex文件后,可以通過讀偽代碼來找到鑒權(quán)ID并進(jìn)行篡改,這種方式門檻相對要高一些。但是也是可以破解的。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的主要目的在于提供一種終端應(yīng)用的保護(hù)方法及裝置,能夠有效的防止終端應(yīng)用被篡改,減少惡意廣告嵌入。
[0007]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0008]本發(fā)明提供了一種終端應(yīng)用的保護(hù)方法,該方法包括:
[0009]加密終端應(yīng)用的應(yīng)用屬性;
[0010]利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;
[0011]當(dāng)接收到啟動所述終端應(yīng)用的指令時,調(diào)用加密后的應(yīng)用屬性,對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,調(diào)用所述終端應(yīng)用主體邏輯。
[0012]上述方案中,所述應(yīng)用屬性包括應(yīng)用包名,
[0013]所述加密終端應(yīng)用的應(yīng)用屬性包括:
[0014]獲取終端應(yīng)用的應(yīng)用包名,通過加密算法將所述應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名作為加密后的應(yīng)用屬性。
[0015]上述方案中,所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)包括:
[0016]將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,若比對成功則校驗(yàn)通過。
[0017]上述方案中,所述應(yīng)用屬性包括應(yīng)用包名和數(shù)字簽名組合,
[0018]所述加密終端應(yīng)用的應(yīng)用屬性包括:
[0019]獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名和數(shù)字簽名組合作為加密后的應(yīng)用屬性。
[0020]上述方案中,所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)包括:
[0021]將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,若比對成功則校驗(yàn)通過。
[0022]上述方案中,該方法還包括:對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常信肩、O
[0023]本發(fā)明還提供了一種終端應(yīng)用的保護(hù)裝置,所述裝置包括:加密模塊、編輯封裝模塊、第一調(diào)用模塊、解密模塊、校驗(yàn)?zāi)K和第二調(diào)用模塊;其中,
[0024]所述加密模塊,用于加密終端應(yīng)用的應(yīng)用屬性;
[0025]所述編輯封裝模塊,用于利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;
[0026]所述第一調(diào)用模塊,用于當(dāng)接收到啟動所述終端應(yīng)用主體邏輯的指令時,調(diào)用加密后的應(yīng)用屬性,并發(fā)送給解密模塊;
[0027]所述解密模塊,用于對第一調(diào)用模塊發(fā)送的所述加密后的應(yīng)用屬性進(jìn)行解密;
[0028]所述校驗(yàn)?zāi)K,用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,觸發(fā)第二調(diào)用模塊;
[0029]所述第二調(diào)用模塊,用于調(diào)用所述終端應(yīng)用主體邏輯。
[0030]上述方案中,所述應(yīng)用屬性包括應(yīng)用包名,
[0031]所述裝置還包括獲取模塊,用于獲取終端應(yīng)用的應(yīng)用包名,將所述應(yīng)用包名發(fā)送給加密模塊;
[0032]所述加密模塊,用于通過加密算法將所述獲取模塊發(fā)送的應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式。
[0033]上述方案中,所述解密模塊還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名發(fā)送給校驗(yàn)?zāi)K;
[0034]所述校驗(yàn)?zāi)K,還用于將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,在比對成功時觸發(fā)第二調(diào)用模塊調(diào)用終端應(yīng)用主體邏輯。
[0035]上述方案中,所述應(yīng)用屬性包括應(yīng)用包名和數(shù)字簽名組合,
[0036]所述裝置還包括獲取模塊,用于獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和所述數(shù)字簽名發(fā)送給加密模塊;
[0037]所述加密模塊,還用于將所述獲取模塊發(fā)送的應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式。
[0038]上述方案中,所述解密模塊還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名和數(shù)字簽名發(fā)送給校驗(yàn)?zāi)K;
[0039]所述校驗(yàn)?zāi)K,還用于將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,在比對成功時觸發(fā)第二調(diào)用模塊。
[0040]上述方案中,所述校驗(yàn)?zāi)K,還用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常?目息。
[0041]本發(fā)明提供的終端應(yīng)用的保護(hù)方法及裝置,加密終端應(yīng)用的應(yīng)用屬性;利用邏輯層編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;當(dāng)接收到啟動所述終端應(yīng)用的指令時,調(diào)用加密后的應(yīng)用屬性,對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,調(diào)用所述終端應(yīng)用主體邏輯,如此,將終端應(yīng)用的應(yīng)用包名作為保護(hù)的目標(biāo),使盜用者在篡改終端應(yīng)用時,若修改應(yīng)用包名,則終端應(yīng)用無法正常運(yùn)行;若不修改應(yīng)用包名,在申請市場發(fā)布時會被對應(yīng)的審核部門拒絕,能夠有效的防止終端應(yīng)用被篡改,減少惡意廣告嵌入。
【專利附圖】
【附圖說明】
[0042]圖1為本發(fā)明終端應(yīng)用的保護(hù)方法實(shí)施例的流程示意圖;
[0043]圖2為本發(fā)明終端應(yīng)用的保護(hù)裝置實(shí)施例的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044]下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
[0045]圖1為本發(fā)明終端應(yīng)用的保護(hù)方法實(shí)施例的流程示意圖,如圖1所示,包括以下步驟:
[0046]步驟101:加密終端應(yīng)用的應(yīng)用屬性;
[0047]這里,在展示層加密終端應(yīng)用的應(yīng)用屬性,所述展示層為可反編譯層,本發(fā)明中可以是JAVA層;
[0048]其中,所述應(yīng)用屬性包括應(yīng)用包名、或者包括應(yīng)用包名和數(shù)字簽名組合。
[0049]所述加密終端應(yīng)用的應(yīng)用屬性具體包括:
[0050]獲取終端應(yīng)用的應(yīng)用包名,通過加密算法將所述應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名作為加密后的應(yīng)用屬性。
[0051]或者,所述加密終端應(yīng)用的應(yīng)用屬性具體包括:
[0052]獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名和數(shù)字簽名組合作為加密后的應(yīng)用屬性,這樣能夠增加所述終端應(yīng)用的安全性。
[0053]其中,所述應(yīng)用包名和數(shù)字簽名組合的方法為字符串格式的應(yīng)用包名與數(shù)字簽名的排列組合,包括但不限于應(yīng)用包名+數(shù)字簽名;
[0054]其中,加密的對象包括但不限于上述應(yīng)用包名、或應(yīng)用包名和數(shù)字簽名的組合;還可以是加密其他可以用于標(biāo)識終端應(yīng)用的應(yīng)用屬性,但目前普遍以應(yīng)用包名作為標(biāo)識終端應(yīng)用的應(yīng)用屬性;
[0055]其中,可通過應(yīng)用程序編程接口(API,Applicat1n Programming Interface)獲取應(yīng)用包名以及數(shù)字簽名;
[0056]其中,所述加密算法包括但不限于以下加密算法:分組加密算法(TEA,TinyEncrypt1n Algorithm)、數(shù)據(jù)加密標(biāo)準(zhǔn)(DES, Data Encrypt1n Standard)算法、三重數(shù)據(jù)加密算法(3DES, Triple Data Encrypt1n Algorithm)、國際數(shù)據(jù)加密算法(IDEA,Internat1nal Data Encrypt1n Algorithm),以及其他加密算法。
[0057]步驟102:利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;
[0058]這里,在邏輯層利用邏輯編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;所述邏輯層為不可反編譯層,本發(fā)明中可以是C/C++層。
[0059]這里,所述加密算法的解密算法可以分拆封裝在多個終端應(yīng)用主體邏輯所在文件中,以增加破解難度;
[0060]其中,將所述應(yīng)用包名和數(shù)字簽名組合的排列組合方法同樣封裝在終端應(yīng)用主體邏輯所在文件中;
[0061]其中,所述終端應(yīng)用主體邏輯包括但不限于游戲應(yīng)用中的狀態(tài)機(jī)邏輯、微信應(yīng)用中的收發(fā)消息邏輯、網(wǎng)頁(WEB)應(yīng)用中的訪問網(wǎng)頁邏輯;
[0062]具體的,在邏輯層通過原生開發(fā)包(NDK,Native Development Kit)將終端應(yīng)用主體邏輯通過C/C++語言編寫,生成一個以上動態(tài)鏈接庫(so)文件,并且將加密算法的解密算法封裝在一個動態(tài)鏈接庫文件中,或者將所述解密算法拆分封裝在多個動態(tài)鏈接庫文件中,并將所述動態(tài)鏈接庫文件保存在邏輯層。
[0063]步驟103:當(dāng)接收到啟動所述終端應(yīng)用的指令時,調(diào)用加密后的應(yīng)用屬性;
[0064]具體的,當(dāng)接收到啟動所述終端應(yīng)用的指令時,將在展示層加密后的應(yīng)用屬性調(diào)用至邏輯層;
[0065]其中,可通過JAVA本地調(diào)用(JNI, Java Native Interface)方法將加密后的字節(jié)數(shù)組格式的應(yīng)用屬性調(diào)用至邏輯層。
[0066]步驟104?步驟105:對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,調(diào)用所述終端應(yīng)用主體邏輯;
[0067]所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)具體包括:
[0068]將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,若比對成功則校驗(yàn)通過。
[0069]或者,所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)具體包括:
[0070]將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,若比對成功則校驗(yàn)通過。
[0071]具體的,所述加密后的應(yīng)用屬性可通過封裝的解密算法由字節(jié)數(shù)組格式解密為字符串格式的應(yīng)用包名和數(shù)字簽名組合,并通過封裝的排列組合方法將所述應(yīng)用包名和數(shù)字簽名組合還原為應(yīng)用包名和數(shù)字簽名。
[0072]該步驟還包括:對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常信息。
[0073]基于上述方法,本發(fā)明還提供了一種終端應(yīng)用的保護(hù)裝置實(shí)施例,如圖2所示,所述保護(hù)裝置包括:加密模塊21、編輯封裝模塊22、第一調(diào)用模塊23、解密模塊24、校驗(yàn)?zāi)K25和第二調(diào)用模塊26 ;其中,
[0074]所述加密模塊21,用于加密終端應(yīng)用的應(yīng)用屬性;
[0075]所述編輯封裝模塊22,用于利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法;
[0076]所述第一調(diào)用模塊23,用于當(dāng)接收到啟動所述終端應(yīng)用主體邏輯的指令時,調(diào)用加密后的應(yīng)用屬性,并發(fā)送給解密模塊24 ;
[0077]所述解密模塊24,用于對第一調(diào)用模塊23發(fā)送的所述加密后的應(yīng)用屬性進(jìn)行解密;
[0078]所述校驗(yàn)?zāi)K25,用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,觸發(fā)第二調(diào)用模塊26 ;
[0079]所述第二調(diào)用模塊26,用于調(diào)用所述終端應(yīng)用主體邏輯。
[0080]所述應(yīng)用屬性包括應(yīng)用包名、或者包括應(yīng)用包名和數(shù)字簽名組合。
[0081 ] 所述裝置還包括獲取模塊27,用于獲取終端應(yīng)用的應(yīng)用包名,將所述應(yīng)用包名發(fā)送給加密模塊21 ;
[0082]所述加密模塊21,用于通過加密算法將所述獲取模塊27發(fā)送的應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名作為加密后的應(yīng)用屬性。
[0083]所述解密模塊24,還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名發(fā)送給校驗(yàn)?zāi)K25 ;
[0084]所述校驗(yàn)?zāi)K25,還用于將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,在比對成功時觸發(fā)第二調(diào)用模塊26調(diào)用終端應(yīng)用主體邏輯。
[0085]所述獲取模塊27,還用于獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和所述數(shù)字簽名發(fā)送給加密模塊21 ;
[0086]所述加密模塊21,還用于將所述獲取模塊發(fā)送的應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名和數(shù)字簽名組合作為加密后的應(yīng)用屬性。
[0087]所述解密模塊24,還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名和數(shù)字簽名發(fā)送給校驗(yàn)?zāi)K25 ;
[0088]所述校驗(yàn)?zāi)K25,還用于將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,在比對成功時觸發(fā)第二調(diào)用模塊26。
[0089]所述校驗(yàn)?zāi)K25,還用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常信息。
[0090]本發(fā)明實(shí)施例所述的終端應(yīng)用的保護(hù)方法如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。這樣,本發(fā)明實(shí)施例不限制于任何特定的硬件和軟件結(jié)合。
[0091]相應(yīng)的,本發(fā)明實(shí)施例還提供一種計算機(jī)存儲介質(zhì),其中存儲有計算機(jī)程序,該計算機(jī)程序用于執(zhí)行本發(fā)明實(shí)施例的終端應(yīng)用的保護(hù)方法。
[0092]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和范圍之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種終端應(yīng)用的保護(hù)方法,其特征在于,該方法包括: 加密終端應(yīng)用的應(yīng)用屬性; 利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法; 當(dāng)接收到啟動所述終端應(yīng)用的指令時,調(diào)用加密后的應(yīng)用屬性,對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,調(diào)用所述終端應(yīng)用主體邏輯。
2.根據(jù)權(quán)利要求1所述的保護(hù)方法,其特征在于,所述應(yīng)用屬性包括應(yīng)用包名, 所述加密終端應(yīng)用的應(yīng)用屬性包括: 獲取終端應(yīng)用的應(yīng)用包名,通過加密算法將所述應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名作為加密后的應(yīng)用屬性。
3.根據(jù)權(quán)利要求2所述的保護(hù)方法,其特征在于,所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)包括: 將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,若比對成功則校驗(yàn)通過。
4.根據(jù)權(quán)利要求1所述的保護(hù)方法,其特征在于,所述應(yīng)用屬性包括應(yīng)用包名和數(shù)字簽名組合, 所述加密終端應(yīng)用的應(yīng)用屬性包括: 獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式,將字節(jié)數(shù)組格式的應(yīng)用包名和數(shù)字簽名組合作為加密后的應(yīng)用屬性。
5.根據(jù)權(quán)利要求4所述的保護(hù)方法,其特征在于,所述對所述加密后的應(yīng)用屬性進(jìn)行解密,并對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)包括: 將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,并將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,若比對成功則校驗(yàn)通過。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的保護(hù)方法,其特征在于,該方法還包括: 對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常信息。
7.—種終端應(yīng)用的保護(hù)裝置,其特征在于,所述裝置包括:加密模塊、編輯封裝模塊、第一調(diào)用模塊、解密模塊、校驗(yàn)?zāi)K和第二調(diào)用模塊;其中, 所述加密模塊,用于加密終端應(yīng)用的應(yīng)用屬性; 所述編輯封裝模塊,用于利用編程語言實(shí)現(xiàn)終端應(yīng)用主體邏輯,并封裝解密算法; 所述第一調(diào)用模塊,用于當(dāng)接收到啟動所述終端應(yīng)用主體邏輯的指令時,調(diào)用加密后的應(yīng)用屬性,并發(fā)送給解密模塊; 所述解密模塊,用于對第一調(diào)用模塊發(fā)送的所述加密后的應(yīng)用屬性進(jìn)行解密; 所述校驗(yàn)?zāi)K,用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn),在校驗(yàn)通過時,觸發(fā)第二調(diào)用模塊; 所述第二調(diào)用模塊,用于調(diào)用所述終端應(yīng)用主體邏輯。
8.根據(jù)權(quán)利要求7所述的保護(hù)裝置,其特征在于,所述應(yīng)用屬性包括應(yīng)用包名, 所述裝置還包括獲取模塊,用于獲取終端應(yīng)用的應(yīng)用包名,將所述應(yīng)用包名發(fā)送給加密模塊; 所述加密模塊,用于通過加密算法將所述獲取模塊發(fā)送的應(yīng)用包名由字符串格式加密為字節(jié)數(shù)組格式。
9.根據(jù)權(quán)利要求8所述的保護(hù)裝置,其特征在于,所述解密模塊還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名發(fā)送給校驗(yàn)?zāi)K; 所述校驗(yàn)?zāi)K,還用于將所述字符串格式的應(yīng)用包名與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名比對,在比對成功時觸發(fā)第二調(diào)用模塊調(diào)用終端應(yīng)用主體邏輯。
10.根據(jù)權(quán)利要求7所述的保護(hù)裝置,其特征在于,所述應(yīng)用屬性包括應(yīng)用包名和數(shù)字簽名組合, 所述裝置還包括獲取模塊,用于獲取終端應(yīng)用的應(yīng)用包名和數(shù)字簽名,將所述應(yīng)用包名和所述數(shù)字簽名發(fā)送給加密模塊; 所述加密模塊,還用于將所述獲取模塊發(fā)送的應(yīng)用包名和數(shù)字簽名組合,并通過加密算法將所述應(yīng)用包名和數(shù)字簽名組合由字符串格式加密為字節(jié)數(shù)組格式。
11.根據(jù)權(quán)利要求10所述的保護(hù)裝置,其特征在于,所述解密模塊還用于將加密后的應(yīng)用屬性通過解密算法由字節(jié)數(shù)組格式解密為字符串格式,將所述字符串格式的應(yīng)用包名和數(shù)字簽名發(fā)送給校驗(yàn)?zāi)K; 所述校驗(yàn)?zāi)K,還用于將所述字符串格式的應(yīng)用包名和數(shù)字簽名分別與預(yù)先存儲的終端應(yīng)用的應(yīng)用包名和數(shù)字簽名比對,在比對成功時觸發(fā)第二調(diào)用模塊。
12.根據(jù)權(quán)利要求7至11任一項(xiàng)所述的保護(hù)裝置,其特征在于,所述校驗(yàn)?zāi)K,還用于對解密后的應(yīng)用屬性進(jìn)行校驗(yàn)不通過時,返回異常信息。
【文檔編號】G06F21/12GK104281788SQ201310282680
【公開日】2015年1月14日 申請日期:2013年7月5日 優(yōu)先權(quán)日:2013年7月5日
【發(fā)明者】李峰, 胥彪, 喻帥, 林野 申請人:騰訊科技(深圳)有限公司