一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,屬于數(shù)據(jù)文件加解密封裝應(yīng)用技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]安卓應(yīng)用是運(yùn)行于安卓手機(jī)上的程序,絕大部分應(yīng)用需要在設(shè)備上存儲數(shù)據(jù)。在移動互聯(lián)網(wǎng)技術(shù)領(lǐng)域中,很多安卓應(yīng)用的數(shù)據(jù)存儲存在一定的安全問題,應(yīng)用存儲的數(shù)據(jù),例如用戶名、密碼、應(yīng)用設(shè)置、隱私數(shù)據(jù)等,容易被其它應(yīng)用讀取或修改,造成數(shù)據(jù)泄露或者篡改。實際中,安卓應(yīng)用的開發(fā)者,需要在所有存儲數(shù)據(jù)的地方對數(shù)據(jù)進(jìn)行加密,所有讀取數(shù)據(jù)的地方進(jìn)行解密,才能對數(shù)據(jù)進(jìn)行加密,這給應(yīng)用開發(fā)增加了較大的工作量。由于安卓數(shù)據(jù)庫接口的限制,應(yīng)用開發(fā)者在不修改數(shù)據(jù)庫引擎的情況下,無法針對存儲在設(shè)備上的數(shù)據(jù)庫文件進(jìn)行加密,而且數(shù)據(jù)庫的結(jié)構(gòu)和內(nèi)容可以被一些數(shù)據(jù)庫工具解析讀取,因此,現(xiàn)有安卓應(yīng)用中的數(shù)據(jù)存儲與讀取,十分不安全。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,針對現(xiàn)有安卓應(yīng)用程序的指令文件進(jìn)行修改,引入預(yù)設(shè)加解密模塊,通過修改安卓操作系統(tǒng)針對安卓應(yīng)用的文件讀寫接口地址,有效實現(xiàn)針對安卓應(yīng)用數(shù)據(jù)文件的讀寫加密操作。
[0004]本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明設(shè)計了一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,包括如下步驟:
步驟001.針對安卓應(yīng)用進(jìn)行解壓縮和反向編譯操作,獲得該安卓應(yīng)用所對應(yīng)的指令文件和資源文件,并進(jìn)入步驟002 ;
步驟002.在該安卓應(yīng)用所對應(yīng)指令文件的入口位置,插入預(yù)設(shè)加解密模塊的調(diào)用指令,更新獲得該安卓應(yīng)用所對應(yīng)的指令文件,并進(jìn)入步驟003 ;
步驟003.針對該安卓應(yīng)用所對應(yīng)的指令文件、資源文件,以及所述預(yù)設(shè)加解密模塊進(jìn)行編譯封裝和簽名操作,更新獲得該安卓應(yīng)用,并進(jìn)入步驟004 ;
步驟004.在安卓操作系統(tǒng)中安裝并運(yùn)行該安卓應(yīng)用,執(zhí)行預(yù)設(shè)加解密模塊的調(diào)用指令,并進(jìn)入步驟005 ;
步驟005.預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,并根據(jù)預(yù)設(shè)加解密模塊中的加解密文件讀寫接口地址,將該原始文件讀寫接口地址修改為該加解密文件讀寫接口地址,完成數(shù)據(jù)加密封裝方法。
[0005]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述指令文件為匯編指令文件。
[0006]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述匯編指令文件為Smali匯編格式指令文件。
[0007]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述預(yù)設(shè)加解密模塊中的加解密算法為對稱加密算法。
[0008]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟005中,根據(jù)預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,以及預(yù)設(shè)加解密模塊中的動態(tài)鏈接庫,獲得所述加解密文件讀寫接口地址。
[0009]本發(fā)明所述一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:本發(fā)明設(shè)計基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,成本低,無開發(fā)工作量,不需要修改源代碼就可以實現(xiàn)數(shù)據(jù)的存儲加密,應(yīng)用的加密封裝可以由工具自動完成,并且工具可以重復(fù)使用;而且整個設(shè)計方法適應(yīng)性強(qiáng),應(yīng)用范圍廣,對文本文件、二進(jìn)制文件、圖片文件、數(shù)據(jù)庫文件均可以實現(xiàn)加密,能夠?qū)崿F(xiàn)對99.5%的安卓應(yīng)用的重新加密封裝。
【附圖說明】
[0010]圖1是本發(fā)明設(shè)計一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法的流程示意圖;
圖2是本發(fā)明設(shè)計基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法中的數(shù)據(jù)處理流程示意圖。
【具體實施方式】
[0011]下面結(jié)合說明書附圖對本發(fā)明的【具體實施方式】作進(jìn)一步詳細(xì)的說明。
[0012]如圖1所示,本發(fā)明所設(shè)計基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法在實際應(yīng)用過程當(dāng)中,具體包括如下步驟:
步驟001.針對安卓應(yīng)用進(jìn)行解壓縮和反向編譯操作,獲得該安卓應(yīng)用所對應(yīng)的Small匯編格式指令文件和資源文件,并進(jìn)入步驟002。
[0013]步驟002.在該安卓應(yīng)用所對應(yīng)Smali匯編格式指令文件的入口位置,插入預(yù)設(shè)加解密模塊的調(diào)用指令,更新獲得該安卓應(yīng)用所對應(yīng)的Smali匯編格式指令文件,并進(jìn)入步驟003。
[0014]步驟003.針對該安卓應(yīng)用所對應(yīng)的Smali匯編格式指令文件、資源文件,以及所述預(yù)設(shè)加解密模塊進(jìn)行編譯封裝和簽名操作,更新獲得該安卓應(yīng)用,并進(jìn)入步驟004。
[0015]步驟004.在安卓操作系統(tǒng)中安裝并運(yùn)行該安卓應(yīng)用,執(zhí)行預(yù)設(shè)加解密模塊的調(diào)用指令,并進(jìn)入步驟005。
[0016]步驟005.首先根據(jù)預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,以及預(yù)設(shè)加解密模塊中的動態(tài)鏈接庫,獲得所述加解密文件讀寫接口地址;然后預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,并根據(jù)預(yù)設(shè)加解密模塊中的加解密文件讀寫接口地址,將該原始文件讀寫接口地址修改為該加解密文件讀寫接口地址,完成數(shù)據(jù)加密封裝方法。
[0017]實際應(yīng)用中,基于上述方法的實施后,在針對安卓應(yīng)用進(jìn)行讀寫文件時,由于安卓操作系統(tǒng)針對該安卓應(yīng)用的文件讀寫接口被改寫,因此,經(jīng)過上述方法后,安卓操作系統(tǒng)針對該安卓應(yīng)用的文件讀寫接口被修改為了預(yù)設(shè)加解密模塊中的加解密文件讀寫接口地址,因此,當(dāng)該安卓應(yīng)用需要寫入數(shù)據(jù)文件時,首先要經(jīng)過預(yù)設(shè)加解密模塊,通過預(yù)設(shè)加解密模塊針對被寫入的數(shù)據(jù)文件首先進(jìn)行加密處理,然后在存儲至物理文件中,進(jìn)而使得最終存儲的物理文件被加密;與之相應(yīng),當(dāng)該安卓應(yīng)用需要讀取數(shù)據(jù)文件時,首先從物理文件中讀取數(shù)據(jù)文件,然后通過預(yù)設(shè)加解密模塊針對該數(shù)據(jù)文件進(jìn)行解密操作,進(jìn)而使得該安卓應(yīng)用讀取到未加密的該數(shù)據(jù)文件;進(jìn)而采用預(yù)設(shè)加解密模塊,通過上述方法,實現(xiàn)安卓應(yīng)用實際應(yīng)用過程中的加解密操作,保證數(shù)據(jù)的安全性;在實際應(yīng)用過程當(dāng)中,所述預(yù)設(shè)加解密模塊中的加解密算法,可以采用對稱加密算法,加解密操作的秘鑰會隨文件的讀寫位置變化,并且秘鑰由秘鑰因子計算得到,秘鑰因子不以明文存儲,不同的安卓應(yīng)用的秘鑰初始因子可以不同。如圖2所示,W是安卓操作系統(tǒng)針對安卓應(yīng)用的寫入文件數(shù)據(jù)接口,W’是預(yù)設(shè)加解密模塊寫數(shù)據(jù)接口,w存儲了接口地址,預(yù)設(shè)加解密模塊通過修改w的值,將原先調(diào)用W的過程重新定向到W’來處理;R是安卓操作系統(tǒng)針對安卓應(yīng)用的讀文件數(shù)據(jù)接口,R’是預(yù)設(shè)加解密模塊讀數(shù)據(jù)接口,r存儲了接口地址,預(yù)設(shè)加解密模塊通過修改r的值,將原先調(diào)用R的過程重新定向到R’來處理。
[0018] 上面結(jié)合附圖對本發(fā)明的實施方式作了詳細(xì)說明,但是本發(fā)明并不限于上述實施方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。
【主權(quán)項】
1.一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,其特征在于,包括如下步驟: 步驟001.針對安卓應(yīng)用進(jìn)行解壓縮和反向編譯操作,獲得該安卓應(yīng)用所對應(yīng)的指令文件和資源文件,并進(jìn)入步驟002 ; 步驟002.在該安卓應(yīng)用所對應(yīng)指令文件的入口位置,插入預(yù)設(shè)加解密模塊的調(diào)用指令,更新獲得該安卓應(yīng)用所對應(yīng)的指令文件,并進(jìn)入步驟003 ; 步驟003.針對該安卓應(yīng)用所對應(yīng)的指令文件、資源文件,以及所述預(yù)設(shè)加解密模塊進(jìn)行編譯封裝和簽名操作,更新獲得該安卓應(yīng)用,并進(jìn)入步驟004 ; 步驟004.在安卓操作系統(tǒng)中安裝并運(yùn)行該安卓應(yīng)用,執(zhí)行預(yù)設(shè)加解密模塊的調(diào)用指令,并進(jìn)入步驟005 ; 步驟005.預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,并根據(jù)預(yù)設(shè)加解密模塊中的加解密文件讀寫接口地址,將該原始文件讀寫接口地址修改為該加解密文件讀寫接口地址,完成數(shù)據(jù)加密封裝方法。2.根據(jù)權(quán)利要求1所述一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,其特征在于:所述指令文件為匯編指令文件。3.根據(jù)權(quán)利要求2所述一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,其特征在于:所述匯編指令文件為Smali匯編格式指令文件。4.根據(jù)權(quán)利要求1所述一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,其特征在于:所述預(yù)設(shè)加解密模塊中的加解密算法為對稱加密算法。5.根據(jù)權(quán)利要求1所述一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,其特征在于:所述步驟005中,根據(jù)預(yù)設(shè)加解密模塊查找獲得該安卓操作系統(tǒng)針對該安卓應(yīng)用的原始文件讀寫接口地址,以及預(yù)設(shè)加解密模塊中的動態(tài)鏈接庫,獲得所述加解密文件讀寫接口地址。
【專利摘要】本發(fā)明涉及一種基于操作系統(tǒng)接口重寫的安卓應(yīng)用數(shù)據(jù)加密封裝方法,針對現(xiàn)有安卓應(yīng)用程序的指令文件進(jìn)行修改,引入預(yù)設(shè)加解密模塊,通過修改安卓操作系統(tǒng)針對安卓應(yīng)用的文件讀寫接口地址,有效實現(xiàn)針對安卓應(yīng)用數(shù)據(jù)文件的讀寫加密操作,具有成本低,無開發(fā)工作量的優(yōu)點,不需要修改源代碼就可以實現(xiàn)數(shù)據(jù)的存儲加密,應(yīng)用的加密封裝可以由工具自動完成,并且工具可以重復(fù)使用;而且整個設(shè)計方法適應(yīng)性強(qiáng),應(yīng)用范圍廣,對文本文件、二進(jìn)制文件、圖片文件、數(shù)據(jù)庫文件均可以實現(xiàn)加密,能夠?qū)崿F(xiàn)對99.5%的安卓應(yīng)用的重新加密封裝。
【IPC分類】G06F21/60
【公開號】CN104951705
【申請?zhí)枴緾N201510398292
【發(fā)明人】徐國龍, 夏立
【申請人】南京烽火星空通信發(fā)展有限公司
【公開日】2015年9月30日
【申請日】2015年7月8日