国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Android應(yīng)用程序加固方法與流程

      文檔序號:11458811閱讀:279來源:國知局
      一種Android應(yīng)用程序加固方法與流程

      本發(fā)明涉及軟件信息安全領(lǐng)域,尤其涉及一種android應(yīng)用程序加固方法。



      背景技術(shù):

      近年來,智能手機在全球范圍內(nèi)迅速普及,正在占據(jù)著越來越多的手機市場份額。android系統(tǒng)是google于2007年11月5日宣布推出的基于linux、開放源碼的智能手機操作系統(tǒng)。至今,android已成為最熱門的移動終端開放平臺之一?;赼ndroid平臺的應(yīng)用程序代碼經(jīng)過編譯器編譯生成的android應(yīng)用壓縮包apk,即androidpackage的縮寫,它包含了android程序運行時所必需的代碼文件、資源、配置信息等。apk極容易被進行逆向攻擊,被攻擊的android應(yīng)用程序就可能被植入廣告、后門,甚至帶有竊取用戶隱私數(shù)據(jù)、惡意扣費等行為,給用戶造成了損失。

      針對android平臺的應(yīng)用面臨被逆向工程和篡改的威脅,目前,研究人員已經(jīng)提出了一些應(yīng)用加固方法,并且現(xiàn)在的android平臺應(yīng)用程序保護技術(shù)中,軟件加殼技術(shù)、完整性檢驗等技術(shù)已被應(yīng)用其中。但是由于android平臺誕生時間較短,軟件保護技術(shù)方面尚處于起步階段,同時由于加密算法的簡單、密鑰保護不足等原因,導(dǎo)致了很多加固的android應(yīng)用程序被攻擊。



      技術(shù)實現(xiàn)要素:

      為克服現(xiàn)有技術(shù)的不足,本發(fā)明提出一種android應(yīng)用程序加固方法。

      本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:

      一種android應(yīng)用程序加固方法,包括步驟

      s1:對需要保護的android應(yīng)用程序使用密鑰k進行加密,將源程序的hash值保存到服務(wù)器;

      s2:對密鑰k進行非對稱加密得到密文t,將私鑰pk保存到服務(wù)器;

      s3:將密文t截圖成圖片,以二進制流嵌入到另一張圖片的文件尾部;

      s4:將加密后的程序密文嵌入到解殼程序dex文件尾部,將簽名打包,并數(shù)字證書上傳到服務(wù)器中;

      s5:解殼程序運行時,驗證服務(wù)器的數(shù)字證書,并取出密文圖片;

      s6:使用ocr識別把密文圖片還原為字符串,從服務(wù)器中獲得私鑰pk,解密字符串得到密鑰k;

      s7:使用密鑰k對加密后的android應(yīng)用程序解密,驗證服務(wù)器返回的hash值;

      s8:動態(tài)加載運行解密后的android應(yīng)用程序。

      進一步地,步驟s1中對android應(yīng)用程序加密的算法是aes算法,對android應(yīng)用程序的hash加密算法是md5算法,所述md5值保存于服務(wù)器中。

      進一步地,步驟s2中,對密鑰k進行非對稱加密的算法是rsa算法,rsa私鑰保存于服務(wù)器中。

      進一步地,步驟s3中,密文圖片二進制流潛入的圖片為android應(yīng)用程序的源程序資源文件的任意一張圖片。嵌入圖片后,圖片的體積變化不大,且能正常顯示。

      進一步地,步驟s4中對破殼程序簽名的數(shù)字證書來源為可靠的發(fā)行機構(gòu),同時把數(shù)字證書上傳到服務(wù)器中。

      進一步地,步驟s5中還包括步驟:若驗證服務(wù)器的數(shù)字證書不通過,則強制停止解殼程序的運行。

      進一步地,步驟s7中還包括步驟:若驗證hash值不通過,則強制停止解密android應(yīng)用程序。

      進一步地,步驟s8還包括步驟,通過java反射機制運行android應(yīng)用程序。

      本發(fā)明的有益效果在于,與現(xiàn)有技術(shù)相比,本發(fā)明對移動應(yīng)用程序的關(guān)鍵代碼進行加密,同時結(jié)合遠程服務(wù)器驗證保證了程序不被篡改,達到了保護android應(yīng)用程序的目的。

      附圖說明

      圖1是本發(fā)明一種android應(yīng)用程序加固方法流程圖;

      圖2是本發(fā)明對android應(yīng)用程序進行加殼的流程圖;

      圖3是本發(fā)明對android應(yīng)用程序運行時解密的流程圖。

      具體實施方式

      下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      請參見圖1,本發(fā)明一種android應(yīng)用程序加固方法,包括步驟

      s1:對需要保護的android應(yīng)用程序使用密鑰k進行加密,將源程序的hash值保存到服務(wù)器;

      s2:對密鑰k進行非對稱加密得到密文t,將私鑰pk保存到服務(wù)器;

      s3:將密文t截圖成圖片,以二進制流嵌入到另一張圖片的文件尾部;

      s4:將加密后的程序密文嵌入到解殼程序dex文件尾部,將簽名打包,并數(shù)字證書上傳到服務(wù)器中;

      s5:解殼程序運行時,驗證服務(wù)器的數(shù)字證書,并取出密文圖片;

      s6:使用ocr識別把密文圖片還原為字符串,從服務(wù)器中獲得私鑰pk,解密字符串得到密鑰k;

      s7:使用密鑰k對加密后的android應(yīng)用程序解密,驗證服務(wù)器返回的hash值;

      s8:動態(tài)加載運行解密后的android應(yīng)用程序。

      本發(fā)明一種android應(yīng)用程序加固方法包含兩個主要步驟:加殼過程和解殼過程。其中加殼過程主要在計算機端進行,圖2是加殼的流程圖,具體步驟如下:

      (1)先計算要加固的android應(yīng)用程序source.apk的md5值,在本計算機安裝apache服務(wù)器,把計算好的md5值放在服務(wù)器上;

      (2)使用aes算法加密source.apk的二進制流,其中aes算法使用的密鑰為k;

      (3)對密鑰k使用rsa加密再轉(zhuǎn)為十六進制文本格式,獲得密文t,同時把rsa的私鑰pk放在apache服務(wù)器上;

      (4)把密文t寫在記事本上對其進行截圖保存為jpg文件,為保證ocr技術(shù)能順利識別,截圖應(yīng)該清晰,不應(yīng)含有干擾因素,截圖的jpg文件轉(zhuǎn)為二進制流嵌入殼程序資源文件的圖標圖片中,把嵌入密文圖片后的圖標圖片覆蓋殼程序資源文件中的圖標圖片;

      (5)由步驟(2)得到的源程序加密密文嵌入殼程序dex文件尾部得到classes.dex,修復(fù)dex文件頭,把classes.dex覆蓋編譯生成的解殼程序apk里面的classes.dex,然后對覆蓋后的apk簽名打包,數(shù)字證書上傳到服務(wù)器中。

      解殼過程主要在android手機端進行,圖3為android程序加固后運行的解殼的流程圖,該過程主要是解殼程序的編寫,具體步驟如下:

      (1)由apache服務(wù)器返回的數(shù)字證書驗證通過后,解殼程序的第一步就是從其資源文件的logo圖片取出密文的二進制流,并還原為密文圖片kp;

      (2)接下來就是運行ocr識別模塊,本示例使用的是tess-two,把密文圖片kp中的密文t識別為字符串;

      (3)從apache服務(wù)器中返回私鑰pk,對上一步的密文t進行rsa解密,得到源程序aes加密的密鑰k;

      (4)解殼程序從合并后的classes.dex文件取出加密后的apk文件二進制流,使用上一步得到的密鑰k對二進制流進行解密,同時把解密二進制流轉(zhuǎn)為apk文件;

      (5)apache服務(wù)器返回源程序的md5值,驗證通過就動態(tài)加載source.apk,然后利用java的反射機制運行該程序。

      現(xiàn)有的android應(yīng)用程序保護技術(shù)存在密鑰特征明顯容易被破解或加密算法過于簡單等問題,本發(fā)明具有下面的優(yōu)點:

      1.現(xiàn)有的技術(shù)中用加密算法對源代碼進行加密,但其密鑰大多是被嵌入殼程序的dex文件中,密鑰容易被識別且被取出,給程序的安全性帶來一定的隱患。本發(fā)明提出的密鑰用非對稱加密算法進一步加密,同時把加密后的密文保存為圖片嵌入資源文件的圖片中,嵌入后的圖片只比原來的圖片多了幾十kb,不容易被攻擊者發(fā)現(xiàn),提高了密鑰的安全性;

      2.結(jié)合服務(wù)器驗證,對殼程序的數(shù)字證書進行驗證和對源程序的hash值進行驗證,保證了加固后的程序不被篡改,有效地防止二次打包攻擊的發(fā)生。同時把密鑰非對稱加密的私鑰放在了遠程服務(wù)器驗證,進一步大大提高了密鑰的安全性。

      以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1