移動(dòng)平臺(tái)下的軟件保護(hù)關(guān)鍵理論與技術(shù)研究
發(fā)布時(shí)間:2021-11-13 03:24
隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,移動(dòng)軟件市場(chǎng)變得越來(lái)越繁榮。巨大的經(jīng)濟(jì)利益不僅吸引了大量的開(kāi)發(fā)人員,也引起了攻擊者的注意,各種惡意軟件、盜版軟件層出不窮。由于移動(dòng)平臺(tái)本身的特點(diǎn)和局限,使得移動(dòng)軟件的保護(hù)方法不得不面對(duì)更加多樣化的挑戰(zhàn),具體表現(xiàn)在:1.移動(dòng)軟件通常采用一些高級(jí)程序設(shè)計(jì)語(yǔ)言進(jìn)行編寫(xiě),攻擊者可能利用多種逆向攻擊手段對(duì)軟件進(jìn)行破壞,需要綜合多種防御手段對(duì)軟件進(jìn)行保護(hù)。2.移動(dòng)軟件通常存儲(chǔ)大量用戶隱私數(shù)據(jù),攻擊者可能通過(guò)分析殘留數(shù)據(jù)來(lái)發(fā)現(xiàn)有價(jià)值的信息,需要設(shè)計(jì)能夠安全清除數(shù)據(jù)的方法。3.攻擊者可以利用重新簽名打包的方法產(chǎn)生大量的相似軟件(盜版軟件),而移動(dòng)軟件的數(shù)量十分龐大,需要設(shè)計(jì)高效的相似軟件檢測(cè)方法。為了維護(hù)移動(dòng)軟件的安全,本文緊緊圍繞移動(dòng)平臺(tái)軟件保護(hù)的關(guān)鍵技術(shù)開(kāi)展研究,在分析總結(jié)現(xiàn)有軟件保護(hù)技術(shù)的基礎(chǔ)上,針對(duì)前述的挑戰(zhàn)分別從軟件的完整性(篡改防護(hù))、數(shù)據(jù)的安全性(數(shù)據(jù)銷(xiāo)毀)和軟件的相似性(相似性檢測(cè))三個(gè)方面進(jìn)行了深入研究,主要的工作和創(chuàng)新點(diǎn)如下:1.設(shè)計(jì)實(shí)現(xiàn)了一種保護(hù)本地代碼的方法。該方法首先通過(guò)將多個(gè)冗余數(shù)據(jù)和完整性檢查代碼插入到原始代碼,防止攻擊者的動(dòng)態(tài)篡改,而后對(duì)編譯后...
【文章來(lái)源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:125 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
圖3-1?CPAN框架??從圖3-1中可以看到,CPAN的輸入為需要保護(hù)的本地代碼源程序
?北京郵電大學(xué)工學(xué)博士學(xué)位論文???(開(kāi)始)??|??+????設(shè)定《個(gè)保護(hù)區(qū)間???????是\????I在第》個(gè)^區(qū)間內(nèi)插>^改檢測(cè)和響應(yīng)代碼??^?i? ̄ ̄??I?在第i個(gè)保:戶區(qū)間內(nèi)插入修正_塊?I?? ̄ ̄?+?1??計(jì)鼠?W3SH舶5f#EE^?|??一?i=i+l??編灘出?卜—??+?_??C5j??圖3-2動(dòng)態(tài)篡改防護(hù)流程圖??從圖3-2中可以看出,動(dòng)態(tài)篡改防護(hù)首先需要在原始本地代碼中設(shè)定保護(hù)區(qū)??間。這些區(qū)間由用戶指定,以函數(shù)為單位,每個(gè)區(qū)間包含個(gè)函數(shù)??尸是函數(shù)總數(shù)),一共可以設(shè)定;2個(gè)代碼保護(hù)區(qū)間(15ns三|)。??Lm」??然后,對(duì)于每個(gè)保護(hù)區(qū)間,動(dòng)態(tài)篡改防護(hù)需要在原始本地代碼中選擇合適的??位置插入篡改檢測(cè)代碼(即Hash校驗(yàn))和篡改響應(yīng)的代碼。由于保護(hù)區(qū)間是以??原始代碼中的函數(shù)為單位,因此插入位置選擇在函數(shù)體中。如果有》個(gè)保護(hù)區(qū)??間,則可以由用戶在每個(gè)保護(hù)區(qū)間內(nèi)選定一個(gè)函數(shù),或由算法自動(dòng)在每個(gè)保護(hù)區(qū)??間內(nèi)任意選定一個(gè)函數(shù)。然后算法可以根據(jù)函數(shù)的結(jié)構(gòu),將篡改檢測(cè)和響應(yīng)代碼??插入到^個(gè)函數(shù)中去。插入后的函數(shù)結(jié)構(gòu)如圖3-3的偽代碼所示。??22??
?第三章基于Android的移動(dòng)軟件篡改防護(hù)研究???圖3-5的左側(cè)的00000490h和000004a0h表示內(nèi)存地址,右側(cè)的數(shù)據(jù)表示該??內(nèi)存地址上的內(nèi)容(每行顯示16個(gè)字節(jié)的內(nèi)容)。從圖3-5(a)中可以看出,如果??采用圖3-4所示的方法聲明一個(gè)修正數(shù)據(jù)并將其賦值為0x11223344,在編譯程??序并運(yùn)行之后,0x11223344出現(xiàn)在程序的內(nèi)存空間(圖3-5(a)第二行第9個(gè)字??節(jié))。而從圖3-5(b)中可以很明顯地發(fā)現(xiàn),如果聲明一個(gè)無(wú)用變量并將其賦值為??0x11223344,由于后續(xù)的程序代碼對(duì)該變量無(wú)任何引用,因此編譯器將會(huì)刪除這??個(gè)無(wú)用變量,其存儲(chǔ)的內(nèi)容0x11223344也將從程序的內(nèi)存空間中消失。??動(dòng)態(tài)篡改防護(hù)的最后一步是對(duì)公式3_1所示的方程進(jìn)行逆向求解,計(jì)算出修??正數(shù)據(jù)的值并將其寫(xiě)入修正數(shù)據(jù)變量(圖3-4中的CoData),具體的計(jì)算過(guò)程不??再贅述。在這一過(guò)程中,需要進(jìn)行必要的調(diào)試,從而確保程序能夠正常運(yùn)行。在??完成修正數(shù)據(jù)的計(jì)算和寫(xiě)入之后,本地代碼己經(jīng)具備了篡改檢測(cè)和響應(yīng)功能,多??個(gè)保護(hù)區(qū)間通過(guò)Hash校驗(yàn)實(shí)現(xiàn)互相監(jiān)視和保護(hù),阻止攻擊者對(duì)本地代碼的破壞。??3.1.2.2靜態(tài)篡改防護(hù)階段??靜態(tài)篡改防護(hù)階段的目標(biāo)是為上一階段生成的本地代碼增加靜態(tài)篡改防護(hù)。??考慮到攻擊者可能利用反編譯工具對(duì)本地代碼程序進(jìn)行逆向分析,因此在這一過(guò)??程中利用代碼加密技術(shù)阻止攻擊者的靜態(tài)反編譯,從而進(jìn)一步增加攻擊者破壞本??地代碼程序的難度。??代碼加密技術(shù)也稱為“代碼加殼”或“動(dòng)態(tài)加載”技術(shù),是一種常見(jiàn)的PC??平臺(tái)上的軟件保護(hù)方法。代碼加密技術(shù)的原理如圖3-6所示:??解密加載??
【參考文獻(xiàn)】:
期刊論文
[1]一種抗混淆的大規(guī)模Android應(yīng)用相似性檢測(cè)方法[J]. 焦四輩,應(yīng)凌云,楊軼,程瑤,蘇璞睿,馮登國(guó). 計(jì)算機(jī)研究與發(fā)展. 2014(07)
碩士論文
[1]基于Android平臺(tái)加密算法的研究與實(shí)現(xiàn)[D]. 趙軍.南京理工大學(xué) 2012
本文編號(hào):3492220
【文章來(lái)源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:125 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
圖3-1?CPAN框架??從圖3-1中可以看到,CPAN的輸入為需要保護(hù)的本地代碼源程序
?北京郵電大學(xué)工學(xué)博士學(xué)位論文???(開(kāi)始)??|??+????設(shè)定《個(gè)保護(hù)區(qū)間???????是\????I在第》個(gè)^區(qū)間內(nèi)插>^改檢測(cè)和響應(yīng)代碼??^?i? ̄ ̄??I?在第i個(gè)保:戶區(qū)間內(nèi)插入修正_塊?I?? ̄ ̄?+?1??計(jì)鼠?W3SH舶5f#EE^?|??一?i=i+l??編灘出?卜—??+?_??C5j??圖3-2動(dòng)態(tài)篡改防護(hù)流程圖??從圖3-2中可以看出,動(dòng)態(tài)篡改防護(hù)首先需要在原始本地代碼中設(shè)定保護(hù)區(qū)??間。這些區(qū)間由用戶指定,以函數(shù)為單位,每個(gè)區(qū)間包含個(gè)函數(shù)??尸是函數(shù)總數(shù)),一共可以設(shè)定;2個(gè)代碼保護(hù)區(qū)間(15ns三|)。??Lm」??然后,對(duì)于每個(gè)保護(hù)區(qū)間,動(dòng)態(tài)篡改防護(hù)需要在原始本地代碼中選擇合適的??位置插入篡改檢測(cè)代碼(即Hash校驗(yàn))和篡改響應(yīng)的代碼。由于保護(hù)區(qū)間是以??原始代碼中的函數(shù)為單位,因此插入位置選擇在函數(shù)體中。如果有》個(gè)保護(hù)區(qū)??間,則可以由用戶在每個(gè)保護(hù)區(qū)間內(nèi)選定一個(gè)函數(shù),或由算法自動(dòng)在每個(gè)保護(hù)區(qū)??間內(nèi)任意選定一個(gè)函數(shù)。然后算法可以根據(jù)函數(shù)的結(jié)構(gòu),將篡改檢測(cè)和響應(yīng)代碼??插入到^個(gè)函數(shù)中去。插入后的函數(shù)結(jié)構(gòu)如圖3-3的偽代碼所示。??22??
?第三章基于Android的移動(dòng)軟件篡改防護(hù)研究???圖3-5的左側(cè)的00000490h和000004a0h表示內(nèi)存地址,右側(cè)的數(shù)據(jù)表示該??內(nèi)存地址上的內(nèi)容(每行顯示16個(gè)字節(jié)的內(nèi)容)。從圖3-5(a)中可以看出,如果??采用圖3-4所示的方法聲明一個(gè)修正數(shù)據(jù)并將其賦值為0x11223344,在編譯程??序并運(yùn)行之后,0x11223344出現(xiàn)在程序的內(nèi)存空間(圖3-5(a)第二行第9個(gè)字??節(jié))。而從圖3-5(b)中可以很明顯地發(fā)現(xiàn),如果聲明一個(gè)無(wú)用變量并將其賦值為??0x11223344,由于后續(xù)的程序代碼對(duì)該變量無(wú)任何引用,因此編譯器將會(huì)刪除這??個(gè)無(wú)用變量,其存儲(chǔ)的內(nèi)容0x11223344也將從程序的內(nèi)存空間中消失。??動(dòng)態(tài)篡改防護(hù)的最后一步是對(duì)公式3_1所示的方程進(jìn)行逆向求解,計(jì)算出修??正數(shù)據(jù)的值并將其寫(xiě)入修正數(shù)據(jù)變量(圖3-4中的CoData),具體的計(jì)算過(guò)程不??再贅述。在這一過(guò)程中,需要進(jìn)行必要的調(diào)試,從而確保程序能夠正常運(yùn)行。在??完成修正數(shù)據(jù)的計(jì)算和寫(xiě)入之后,本地代碼己經(jīng)具備了篡改檢測(cè)和響應(yīng)功能,多??個(gè)保護(hù)區(qū)間通過(guò)Hash校驗(yàn)實(shí)現(xiàn)互相監(jiān)視和保護(hù),阻止攻擊者對(duì)本地代碼的破壞。??3.1.2.2靜態(tài)篡改防護(hù)階段??靜態(tài)篡改防護(hù)階段的目標(biāo)是為上一階段生成的本地代碼增加靜態(tài)篡改防護(hù)。??考慮到攻擊者可能利用反編譯工具對(duì)本地代碼程序進(jìn)行逆向分析,因此在這一過(guò)??程中利用代碼加密技術(shù)阻止攻擊者的靜態(tài)反編譯,從而進(jìn)一步增加攻擊者破壞本??地代碼程序的難度。??代碼加密技術(shù)也稱為“代碼加殼”或“動(dòng)態(tài)加載”技術(shù),是一種常見(jiàn)的PC??平臺(tái)上的軟件保護(hù)方法。代碼加密技術(shù)的原理如圖3-6所示:??解密加載??
【參考文獻(xiàn)】:
期刊論文
[1]一種抗混淆的大規(guī)模Android應(yīng)用相似性檢測(cè)方法[J]. 焦四輩,應(yīng)凌云,楊軼,程瑤,蘇璞睿,馮登國(guó). 計(jì)算機(jī)研究與發(fā)展. 2014(07)
碩士論文
[1]基于Android平臺(tái)加密算法的研究與實(shí)現(xiàn)[D]. 趙軍.南京理工大學(xué) 2012
本文編號(hào):3492220
本文鏈接:http://sikaile.net/shoufeilunwen/xxkjbs/3492220.html
最近更新
教材專著