亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種程序代碼保護(hù)方法及裝置的制造方法

文檔序號(hào):8543935閱讀:184來(lái)源:國(guó)知局
一種程序代碼保護(hù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)終端技術(shù)領(lǐng)域,具體涉及系統(tǒng)安全領(lǐng)域,尤其涉及一種程序代碼保護(hù)方法及裝置。
【背景技術(shù)】
[0002]Android是一個(gè)以Linux為基礎(chǔ)的半開(kāi)源操作系統(tǒng),而Linux是一種自由和開(kāi)放源碼的類Unix操作系統(tǒng),所以破解者很容易使用動(dòng)態(tài)代碼注入技術(shù),破壞Android系統(tǒng)原始的代碼邏輯,加入惡意代碼邏輯,使得Android系統(tǒng)不能正常運(yùn)行。

【發(fā)明內(nèi)容】

[0003]有鑒于此,本發(fā)明實(shí)施例提供一種程序代碼保護(hù)方法及裝置,來(lái)解決以上【背景技術(shù)】部分提到的技術(shù)問(wèn)題。
[0004]一方面,本發(fā)明實(shí)施例提供了一種程序代碼保護(hù)方法,所述方法包括:
[0005]獲取需要保護(hù)的程序代碼以及用于加密所述需要保護(hù)的程序代碼的密鑰程序代碼;
[0006]按照預(yù)定算法對(duì)所述密鑰程序代碼進(jìn)行哈希計(jì)算,得到加密密鑰;
[0007]利用所述加密密鑰對(duì)所述需要保護(hù)的程序代碼進(jìn)行加密得到加密程序代碼。
[0008]另一方面,本發(fā)明實(shí)施例還提出了一種程序代碼保護(hù)裝置,所述裝置包括:
[0009]獲取模塊,用于獲取需要保護(hù)的程序代碼以及用于加密所述需要保護(hù)的程序代碼的密鑰程序代碼;
[0010]哈希計(jì)算模塊,用于按照預(yù)定算法對(duì)所述密鑰程序代碼進(jìn)行哈希計(jì)算,得到加密密鑰;
[0011]加密模塊,用于利用所述加密密鑰對(duì)所述需要保護(hù)的程序代碼進(jìn)行加密得到加密程序代碼。
[0012]本發(fā)明實(shí)施例提出的程序代碼保護(hù)方法和裝置,在對(duì)需要保護(hù)的程序代碼進(jìn)行保護(hù)時(shí),其加密密鑰是通過(guò)對(duì)其他程序代碼進(jìn)行哈希計(jì)算得出的,即設(shè)計(jì)了一種對(duì)對(duì)象的依賴關(guān)系作為密鑰加密對(duì)象,則依賴關(guān)系中任何一個(gè)環(huán)節(jié)被篡改,都無(wú)法解密出原始的對(duì)象,所以能夠很好的保護(hù)需要保護(hù)的程序代碼不被篡改。
【附圖說(shuō)明】
[0013]通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0014]圖1是本發(fā)明實(shí)施例中一種程序代碼保護(hù)方法的流程圖;
[0015]圖2是本發(fā)明實(shí)施例中一種程序代碼保護(hù)方法的示意圖;
[0016]圖3是本發(fā)明實(shí)施例中一種實(shí)現(xiàn)加密程序代碼的解密的流程圖;
[0017]圖4是本發(fā)明實(shí)施例中一種程序代碼保護(hù)裝置的組成框圖;
[0018]圖5是本發(fā)明實(shí)施例中另一種程序代碼保護(hù)裝置的組成框圖;
[0019]圖6是本發(fā)明實(shí)施例中另一種程序代碼保護(hù)裝置的組成框圖;
[0020]圖7是本發(fā)明實(shí)施例中另一種程序代碼保護(hù)裝置的組成框圖。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
[0022]本發(fā)明實(shí)施例提供了一種程序代碼保護(hù)方法,如圖1所示,該方法包括:
[0023]101、獲取需要保護(hù)的程序代碼以及用于加密所述需要保護(hù)的程序代碼的密鑰程序代碼。
[0024]其中,該密鑰代碼程序用于進(jìn)行哈希計(jì)算獲得加密需要保護(hù)的程序代碼的加密、解密密鑰,其可以為加密的程序代碼也可以為沒(méi)有加密(即不需要保護(hù))的程序代碼,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制。該密鑰程序代碼可以為一個(gè)程序代碼,也可以是多個(gè)程序代碼,具體的本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制。
[0025]102、按照預(yù)定算法對(duì)所述密鑰程序代碼進(jìn)行哈希計(jì)算,得到加密密鑰。
[0026]其中,該密鑰程序代碼進(jìn)行哈希計(jì)算的預(yù)定算法,可以為算法包括MD2、MD4、MD5和SHA-1中的任意種,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制,任何一種現(xiàn)有的哈希計(jì)算方法都可以應(yīng)用于本發(fā)明的實(shí)施例中。并且在進(jìn)行加密和解密時(shí),使用的可以是同一個(gè)算法,得出的加密密鑰和解密密鑰是相同的,即采用對(duì)稱加密算法;當(dāng)然也可以使用非對(duì)稱加密算法,得出的加密密鑰和解密密鑰雖然不同,但是其是配對(duì)使用的。
[0027]103、利用所述加密密鑰對(duì)所述需要保護(hù)的程序代碼進(jìn)行加密得到加密程序代碼。
[0028]以下結(jié)合具體實(shí)例陳述一下程序代碼保護(hù)方法,如圖2所示,一段程序代碼包含三個(gè)函數(shù),每個(gè)函數(shù)對(duì)應(yīng)一段程序代碼塊,該三個(gè)函數(shù)分別為A函數(shù)、B函數(shù)、C函數(shù),原始程序代碼塊中要保護(hù)的程序代碼是B函數(shù),密鑰程序代碼為未保護(hù)的A函數(shù)和C函數(shù)。按照預(yù)定算法對(duì)A函數(shù)和C函數(shù)進(jìn)行哈希計(jì)算,得到加密密鑰;利用所述加密密鑰對(duì)B函數(shù)進(jìn)行加密得到加密程序代碼。
[0029]進(jìn)一步的,在對(duì)需要保護(hù)的程序代碼進(jìn)行加密后,在運(yùn)行程序代碼時(shí),需要對(duì)加密的程序代碼先進(jìn)行解密,獲得原始程序代碼,之后再執(zhí)行。但是由于計(jì)算加密密鑰的密鑰程序代碼可能位于該加密程序代碼的前面,也可能是后面,所以,為了能夠在程序代碼執(zhí)行的時(shí)候,順利獲得加密程序代碼的解密密鑰,需要在在利用所述加密密鑰對(duì)所述需要保護(hù)的程序代碼進(jìn)行加密得到加密程序代碼的同時(shí),設(shè)置獲取解密密鑰的地址鏈接,以便執(zhí)行程序代碼時(shí),獲取所述加密程序代碼的解密密鑰。
[0030]進(jìn)一步的,基于上述地址鏈接的設(shè)置,在執(zhí)行程序代碼時(shí),當(dāng)執(zhí)行到加密程序代碼時(shí),本發(fā)明提供一下的程序代碼保護(hù)方法,以實(shí)現(xiàn)加密程序代碼的解密,如圖3所示,該方法包括:
[0031 ] 201、執(zhí)行所述地址鏈接獲取所述密鑰程序代碼。
[0032]202、按照預(yù)定算法對(duì)所述密鑰程序代碼進(jìn)行哈希計(jì)算,得到解密密鑰。
[0033]203、利用所述解密密鑰對(duì)所述加密程序代碼進(jìn)行解密;若解密成功,則執(zhí)行204 ;若解密不成功,則執(zhí)行205。
[0034]其中,若解密成功,說(shuō)明獲取解密密鑰相關(guān)的密鑰程序代碼沒(méi)有被篡改過(guò);若解密不成功,說(shuō)明獲取解密密鑰相關(guān)的密鑰程序代碼已經(jīng)被篡改過(guò)。
[0035]204、執(zhí)行解密后的程序代碼。
[0036]205、輸出程序代碼被篡改的信息提示。
[0037]其中,本發(fā)明實(shí)施例在進(jìn)行程序代碼被篡改的信息提示時(shí),可以通過(guò)但不局限于以下的方式實(shí)現(xiàn),該方式為以下形式的一種或任意種的組合,該形式包括:文字、聲音、圖形、視頻。
[0038]基于圖2描述的加密過(guò)程,當(dāng)程序代碼執(zhí)行到加密后的B函數(shù)時(shí),執(zhí)行預(yù)先設(shè)置的地址鏈接獲取A函數(shù)和C函數(shù),按照預(yù)定算法對(duì)A函數(shù)和C函數(shù)進(jìn)行哈希計(jì)算,得到解密密鑰;利用解密密鑰對(duì)加密的B函數(shù)進(jìn)行解密;若惡意程序篡改了 A函數(shù)或者C函數(shù)的代碼,則在按照預(yù)定算法對(duì)A函數(shù)和C函數(shù)進(jìn)行哈希計(jì)算時(shí),得到的解密密鑰將有變化,則不能正常解密B函數(shù)密文,導(dǎo)致程序無(wú)法執(zhí)行。所以只有當(dāng)A與C代碼塊數(shù)據(jù)完整,沒(méi)有被惡意程序篡改時(shí),才可以正常執(zhí)行B代碼塊。例如,在Android系統(tǒng)中,DEX文件將用SO文件的哈希計(jì)算得到的加密密鑰進(jìn)行加密,以密文形式存在,所以DEX數(shù)據(jù)無(wú)法篡改;S0文件的哈希會(huì)作為解密DEX文件的密鑰。所以若篡改SO文件內(nèi)容,則DEX將不能正常解密,導(dǎo)致DEX無(wú)法執(zhí)行。
[0039]基于上述方法,本發(fā)明實(shí)施例還提供一種程序代碼保護(hù)裝置,如圖4所示,該裝置包括:
[0040]獲
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1