欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種應(yīng)用程序安全防護(hù)方法和服務(wù)器的制造方法

文檔序號(hào):9911485閱讀:295來(lái)源:國(guó)知局
一種應(yīng)用程序安全防護(hù)方法和服務(wù)器的制造方法【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及通信技術(shù),尤其涉及一種應(yīng)用程序安全防護(hù)方法和服務(wù)器?!?br>背景技術(shù)
】[0002]目前,基于移動(dòng)平臺(tái)(也稱移動(dòng)操作系統(tǒng))的應(yīng)用程序(軟件)越來(lái)越廣泛,但應(yīng)用程序的安全性較差。這里,應(yīng)用程序的安全性主要是指應(yīng)用程序被逆向工具反編譯,反編譯后的代碼可讀性強(qiáng),易分析、易修改、易二次打包,且修改后不易追查。[0003]以Android平臺(tái)例,基于虛擬機(jī)(如Dalvik虛擬機(jī))方式運(yùn)行的應(yīng)用程序(如Java應(yīng)用程序)就極容易被逆向工具反編譯。[0004]Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。[0005]Dalvik是用于Android平臺(tái)的Java虛擬機(jī),是Android移動(dòng)設(shè)備平臺(tái)的核心組成部分之一。Dalvik可以支持已轉(zhuǎn)換為.dex(即DalvikExecutable)格式的Java應(yīng)用程序的運(yùn)行,.dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。[0006]Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng)?!?br/>發(fā)明內(nèi)容】[0007]為解決現(xiàn)有存在的技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種應(yīng)用程序安全防護(hù)方法和服務(wù)器。[0008]本發(fā)明實(shí)施例提供的一種應(yīng)用程序安全防護(hù)方法,所述方法包括:[0009]服務(wù)器接收客戶端發(fā)來(lái)的第一應(yīng)用程序;[0010]所述服務(wù)器對(duì)所述第一應(yīng)用程序的參數(shù)和/或指令進(jìn)行修改,得到第二應(yīng)用程序,所述第二應(yīng)用程序能夠正常運(yùn)行,且當(dāng)使用逆向工具解析所述第二應(yīng)用程序時(shí),所述第二應(yīng)用程序能夠?qū)е滤瞿嫦蚬ぞ邎?bào)錯(cuò)退出;[0011]所述服務(wù)器將所述第二應(yīng)用程序發(fā)給所述客戶端。[0012]其中,所述服務(wù)器對(duì)所述第一應(yīng)用程序的參數(shù)和/或指令進(jìn)行修改,包括:[0013]所述服務(wù)器將所述第一應(yīng)用程序中的第一參數(shù)修改為非法參數(shù),所述第一參數(shù)是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的參數(shù);或者,[0014]所述服務(wù)器將所述第一應(yīng)用程序中的第一指令修改為非法指令,所述第一指令是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的指令;或者,[0015]所述服務(wù)器在所述第一應(yīng)用程序中加入第二參數(shù),所述第二參數(shù)為非法參數(shù),且所述第二參數(shù)是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的參數(shù);或者,[0016]所述服務(wù)器在所述第一應(yīng)用程序中加入第二指令,所述第二指令為非法指令,且所述第二指令是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的指令。[0017]其中,所述服務(wù)器將所述第一應(yīng)用程序中的第一參數(shù)修改為非法參數(shù),包括:[0018]所述服務(wù)器將所述第一應(yīng)用程序中的合法指令集操作碼后的操作碼參數(shù)修改為非法參數(shù)。[0019]其中,所述操作碼參數(shù)至少包括所述第一應(yīng)用程序中的無(wú)效引用、不存在的地址、不存在的索引值中的一種。[0020]其中,所述方法還包括:[0021]所述服務(wù)器保存所述第二應(yīng)用程序的第一安全哈希算法SHAl校驗(yàn)值;[0022]所述服務(wù)器為所述第二應(yīng)用程序設(shè)置校驗(yàn)?zāi)K,包含有所述校驗(yàn)?zāi)K的應(yīng)用程序在運(yùn)行時(shí)能夠向所述服務(wù)器發(fā)送校驗(yàn)信息,所述校驗(yàn)信息包括所述應(yīng)用程序的第二SHAl校驗(yàn)值;[0023]所述服務(wù)器將收到的所述第二SHAl校驗(yàn)值與保存的所述第一SHAl校驗(yàn)值進(jìn)行對(duì)比;[0024]當(dāng)所述第二SHAl校驗(yàn)值與所述第一SHAl校驗(yàn)值匹配時(shí),所述服務(wù)器判定發(fā)出所述校驗(yàn)信息的應(yīng)用程序是所述第二應(yīng)用程序;[0025]當(dāng)所述第二SHAl校驗(yàn)值與所述第一SHAl校驗(yàn)值不匹配時(shí),所述服務(wù)器判定發(fā)出所述校驗(yàn)信息的應(yīng)用程序是基于所述第二應(yīng)用程序進(jìn)行逆向修改得到的。[0026]其中,所述方法還包括:[0027]所述服務(wù)器為所述第二應(yīng)用程序生成一組公鑰證書和私鑰證書,給所述校驗(yàn)?zāi)K設(shè)置所述公鑰證書,所述服務(wù)器自身保存所述私鑰證書;[0028]所述服務(wù)器為所述第二應(yīng)用程序分配身份標(biāo)識(shí)號(hào)碼ID,并給所述校驗(yàn)?zāi)K設(shè)置所述ID,所述ID與所述私鑰證書相對(duì)應(yīng);相應(yīng)的,所述校驗(yàn)信息還包括加密SHAl校驗(yàn)值和所述ID,所述加密SHAl校驗(yàn)值是所述校驗(yàn)?zāi)K使用所述公鑰證書對(duì)所述第二SHAl校驗(yàn)值進(jìn)行加密生成的;[0029]所述服務(wù)器根據(jù)收到的所述校驗(yàn)信息中的所述ID找到相對(duì)應(yīng)的私鑰證書,并使用所述私鑰證書對(duì)所述加密SHAl校驗(yàn)值進(jìn)行解碼,得到第二SHAl校驗(yàn)值。[0030]其中,所述方法還包括:[0031]所述服務(wù)器給所述校驗(yàn)?zāi)K設(shè)置校驗(yàn)算法,所述服務(wù)器自身保存所述校驗(yàn)算法;相應(yīng)的,所述校驗(yàn)信息還包括第二哈希運(yùn)算消息認(rèn)證碼HMAC,所述第二HMAC為所述校驗(yàn)?zāi)K使用所述校驗(yàn)算法對(duì)所述ID和所述加密SHAl校驗(yàn)值進(jìn)行校驗(yàn)得到的;[0032]所述服務(wù)器使用所述校驗(yàn)算法對(duì)收到的所述校驗(yàn)信息中的所述ID和所述加密SHAl校驗(yàn)值進(jìn)行校驗(yàn)得到第一HMAC;[0033]將所述第一HMAC和所述第二HMAC進(jìn)行對(duì)比,當(dāng)所述第一HMAC和所述第二HMAC一致時(shí),執(zhí)行根據(jù)所述ID找到相對(duì)應(yīng)的私鑰證書的步驟。[0034]其中,所述服務(wù)器將所述第二應(yīng)用程序發(fā)給所述客戶端之后,所述方法還包括:[0035]所述服務(wù)器接收所述第二應(yīng)用程序發(fā)送的校驗(yàn)信息,其中,所述檢驗(yàn)信息包括:所述第二應(yīng)用程序的ID、加密SHAl校驗(yàn)值和HMAC;其中,所述第二應(yīng)用程序的ID與所述服務(wù)器為所述第一應(yīng)用程序分配的ID相同;所述加密SHAl校驗(yàn)值為使用所述服務(wù)器預(yù)置入所述第一應(yīng)用程序中的公鑰,對(duì)所述第一應(yīng)用程序的SHAl校驗(yàn)值進(jìn)行加密后生成的校驗(yàn)值;所述HMAC為對(duì)所述第二應(yīng)用程序的ID和所述加密SHAl校驗(yàn)值進(jìn)行校驗(yàn)后生成的結(jié)果;[0036]所述服務(wù)器根據(jù)所述校驗(yàn)信息,判斷所述第二應(yīng)用程序是否被修改。[0037]其中,所述服務(wù)器根據(jù)所述校驗(yàn)信息,判斷所述第二應(yīng)用程序是否被修改,包括:[0038]所述服務(wù)器使用所述校驗(yàn)信息中的HMAC判斷所述檢驗(yàn)信息是否正確;[0039]在確定正確后,根據(jù)所述校驗(yàn)信息中的所述ID獲取與所述第一應(yīng)用程序中的公鑰相對(duì)應(yīng)的私鑰,使用所述私鑰對(duì)所述加密SHAl校驗(yàn)值進(jìn)行解密,獲得解密后的SHAl校驗(yàn)值;[0040]當(dāng)確定解密后的所述SHAl校驗(yàn)值與所述服務(wù)器中存儲(chǔ)的所述第一應(yīng)用程序的SHAl校驗(yàn)值不匹配時(shí),確定所述第二應(yīng)用程序被修改。[0041]其中,所述服務(wù)器為所述第二應(yīng)用程序設(shè)置校驗(yàn)?zāi)K,包括:[0042]所述服務(wù)器以加入JAR庫(kù)或SO庫(kù)的方式為所述第二應(yīng)用程序設(shè)置校驗(yàn)?zāi)K,包括:將編寫的校驗(yàn)?zāi)K生成JAR庫(kù)或SO庫(kù);調(diào)用所述JAR庫(kù)或SO庫(kù),生成安卓安裝包APK_A;將所述APK_Ag編譯為Smali_A;將所述第二應(yīng)用程序反編譯為Smali_B;分析、提取Smali_A中調(diào)用JAR庫(kù)或SO庫(kù)的部分,合并入Smali_B中,并進(jìn)行相應(yīng)的修改;將Smali_B編譯為APK,完成校驗(yàn)?zāi)K的添加。[0043]其中,所述服務(wù)器在收到所述第一應(yīng)用程序之后,所述方法還包括:[0044]所述服務(wù)器以加入JAR庫(kù)或SO庫(kù)的方式為所述第二應(yīng)用程序設(shè)置在線升級(jí)功能模塊,所述在線升級(jí)功能模塊通過(guò)加入、修改軟件字節(jié)碼的方式被所述第二應(yīng)用程序調(diào)用,所述在線升級(jí)功能模塊用于連接所述服務(wù)器,對(duì)所述JAR庫(kù)和/或SO庫(kù)進(jìn)行定期更新。[0045]本發(fā)明實(shí)施例提供一種服務(wù)器,所述服務(wù)器包括:[0046]接收單元,用于接收客戶端發(fā)來(lái)的第一應(yīng)用程序;[0047]處理單元,用于對(duì)所述第一應(yīng)用程序的參數(shù)和/或指令進(jìn)行修改,得到第二應(yīng)用程序,所述第二應(yīng)用程序能夠正常運(yùn)行,且當(dāng)使用逆向工具解析所述第二應(yīng)用程序時(shí),所述第二應(yīng)用程序能夠?qū)е滤瞿嫦蚬ぞ邎?bào)錯(cuò)退出;[0048]發(fā)送單元,用于將所述第二應(yīng)用程序發(fā)給所述客戶端。[0049]其中,所述處理單元,具體用于將所述第一應(yīng)用程序中的第一參數(shù)修改為非法參數(shù),所述第一參數(shù)是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的參數(shù);或者,[0050]將所述第一應(yīng)用程序中的第一指令修改為非法指令,所述第一指令是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的指令;或者,[0051]在所述第一應(yīng)用程序中加入第二參數(shù),所述第二參數(shù)為非法參數(shù),且所述第二參數(shù)是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的參數(shù);或者,[0052]在所述第一應(yīng)用程序中加入第二指令,所述第二指令為非法指令,且所述第二指令是所述第一應(yīng)用程序在運(yùn)行時(shí)不調(diào)用的指令。[0053]其中,所述處理單元,具體用于將所述第一應(yīng)用程序中的合法指令集操作碼后的操作碼參數(shù)修改為非法參數(shù)。[0054]其中,所述操作碼參數(shù)至少包括所述第一應(yīng)用程序中的無(wú)效引用、不存在的地址、不存在的索引值中的一種。[0055]其中,所述處理單元,還用于保存所述第二應(yīng)用程序的第一安全哈希算法SHAl校驗(yàn)值;[0056]為所述第二應(yīng)用程序設(shè)置校驗(yàn)?zāi)K,包含有所述校驗(yàn)?zāi)K的應(yīng)用程序在運(yùn)行時(shí)能夠向所述服務(wù)器發(fā)送校驗(yàn)信息,所述校驗(yàn)信息包括所述應(yīng)用程序的第二SHAl校驗(yàn)值;[0057]將所述收到的第二SHAl校驗(yàn)值與保存的所述第一SHAl校驗(yàn)值進(jìn)行對(duì)比;[0058]當(dāng)所述第當(dāng)前第1頁(yè)1 2 3 4 5 
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
顺义区| 垦利县| 夏邑县| 丹东市| 杭州市| 开鲁县| 且末县| 舒兰市| 昔阳县| 怀柔区| 鄢陵县| 抚松县| 阳春市| 明光市| 磐石市| 阳谷县| 嘉黎县| 荆门市| 皋兰县| 永济市| 芷江| 通化市| 简阳市| 黄石市| 云浮市| 镇宁| 新河县| 金湖县| 漳州市| 巩义市| 太康县| 黄冈市| 巴楚县| 新竹县| 营山县| 栾城县| 永清县| 德江县| SHOW| 柳林县| 碌曲县|