基于代碼混淆的軟件保護技術(shù)研究
發(fā)布時間:2018-08-04 17:40
【摘要】:IT行業(yè)的不斷發(fā)展使軟件的運用出現(xiàn)在各行各業(yè)。軟件功能的強大導致軟件開發(fā)成本昂貴,軟件破解和盜版現(xiàn)象日趨嚴重。為了減少軟件開發(fā)者的損失,保證軟件行業(yè)的正常運行,許多學校和企業(yè)加強了對軟件保護研究的重視,并且設計了許多軟件保護的方法。軟件保護分為軟加密和硬加密。硬加密雖然安全性高,但是價格昂貴;軟加密由于成本低,所以運用普遍。代碼混淆是軟件保護中一種非常常用的軟加密方法,混淆前和混淆后的程序在功能和行為上都是相同或相近的,主要目的是讓那些逆向分析者很難運用逆向工程解讀出軟件設計人員所寫的源程序。代碼混淆主要分為三種類型,即布局混淆、數(shù)據(jù)混淆和控制混淆,本文分別將這3種混淆進行分析和對比,并且總結(jié)出了它們的優(yōu)缺點,進而構(gòu)造出多重代碼混淆模型。本文對多重代碼混淆所涉及到的單個混淆進行了研究:(1)基于偽隨機置換的研究:置換混淆最大的特點就是執(zhí)行效率高,但是單純的置換安全性低,所以本文通過偽隨機序列產(chǎn)生一些密鑰,然后對程序中的標識符進行加密,最后進行了實驗和分析。(2)同態(tài)加密技術(shù)的研究:同態(tài)加密技術(shù)的操作對象為整數(shù),這對其使用范圍是一個很大的限制。本文運用孫子定理對其它類型的數(shù)據(jù)進行包裝,使之可用同態(tài)加密進行運算,這種算法擴大了同態(tài)加密的應用范圍。同時本文對算法計算部分的傅里葉變換也進行了改進。通過該算法在代碼混淆實驗中的應用可以看出,其應用范圍不僅得到了拓展,而且在不影響其安全性的前提下,計算效率也有了很大的提高。(3)不透明謂詞的研究:不透明謂詞混淆實現(xiàn)簡單,但是制作出難以識別的不透明謂詞是需要下一番功夫的,N態(tài)hash不透明謂詞法是一個不錯的選擇。本文引入偽隨機序列的思想對N態(tài)hash不透明謂詞進行了改進,使得其生成簡單方便,并且沒有規(guī)律性,可以減少軟件的可讀性,使攻擊者很難明白該軟件的功能信息。在對以上三點做出改進后,本文實現(xiàn)了多重代碼混淆原型系統(tǒng),并應用該系統(tǒng)對通訊系統(tǒng)進行了保護,對系統(tǒng)數(shù)據(jù)庫和程序進行了加密。通過對混淆前和混淆后的程序進行分析和對比,突出了本文算法的優(yōu)勢。
[Abstract]:The continuous development of the IT industry makes the application of software appear in all walks of life. The powerful software function leads to the high cost of software development and the phenomenon of software cracking and piracy. In order to reduce the loss of software developers and ensure the normal operation of the software industry, many schools and enterprises have strengthened the attention to the research of software protection and designed the software. There are many methods of software protection. Software protection is divided into soft encryption and hard encryption. Hard encryption, though high in security, is expensive; soft encryption is widely used because of low cost, so code confusion is a very common soft encryption method in software protection. The program is the same or phase in the function and behavior of confusing before and after confusion. The main purpose is to make it difficult for the reverse analysts to interpret the source programs written by the software designers by reverse engineering. The code confusion is divided into three types, namely, the confusion of the layout, the confusion of data and the confusion of control. In this paper, the 3 confusion is analyzed and compared respectively, and their advantages and disadvantages are summed up and then constructed. Multiple code obfuscation models are studied in this paper. (1) research based on pseudorandom permutation: the biggest feature of permutation is high execution efficiency, but simple replacement security is low, so this paper generates some keys through pseudo random sequence, and then the identifier in the program is entered. The experiment and analysis are carried out at last. (2) study on the homomorphic encryption technology: the operation object of the homomorphic encryption technique is an integer, which is a big limit to its use range. This paper uses Sun Tzu theorem to package other types of data so that it can be operated by homomorphic and dense. This algorithm enlarges the homomorphic encryption. At the same time, this paper also improves the Fourier transform of the calculation part of the algorithm. Through the application of the algorithm in the code confusion experiment, it can be seen that the application scope is not only expanded, but also the computational efficiency has been greatly improved without affecting its security. (3) the study of opaque predicate: opaque predicate The realization of word confusion is simple, but the making of an opaque predicate that is difficult to recognize is necessary. The N state hash opaque predicate is a good choice. This paper introduces the idea of pseudo random sequence to improve the hash opaque predicate in N state, making it simple, and it can reduce the availability of software. Reading nature makes it difficult for the attacker to understand the functional information of the software. After improving the above three points, this paper realizes the multiple code confusion prototype system, and uses the system to protect the communication system, and encrypts the system database and program. The analysis and comparison of the pre confusing and confusing programs are highlighted. The advantages of the algorithm in this paper.
【學位授予單位】:中北大學
【學位級別】:碩士
【學位授予年份】:2017
【分類號】:TP311.5;TP309
本文編號:2164617
[Abstract]:The continuous development of the IT industry makes the application of software appear in all walks of life. The powerful software function leads to the high cost of software development and the phenomenon of software cracking and piracy. In order to reduce the loss of software developers and ensure the normal operation of the software industry, many schools and enterprises have strengthened the attention to the research of software protection and designed the software. There are many methods of software protection. Software protection is divided into soft encryption and hard encryption. Hard encryption, though high in security, is expensive; soft encryption is widely used because of low cost, so code confusion is a very common soft encryption method in software protection. The program is the same or phase in the function and behavior of confusing before and after confusion. The main purpose is to make it difficult for the reverse analysts to interpret the source programs written by the software designers by reverse engineering. The code confusion is divided into three types, namely, the confusion of the layout, the confusion of data and the confusion of control. In this paper, the 3 confusion is analyzed and compared respectively, and their advantages and disadvantages are summed up and then constructed. Multiple code obfuscation models are studied in this paper. (1) research based on pseudorandom permutation: the biggest feature of permutation is high execution efficiency, but simple replacement security is low, so this paper generates some keys through pseudo random sequence, and then the identifier in the program is entered. The experiment and analysis are carried out at last. (2) study on the homomorphic encryption technology: the operation object of the homomorphic encryption technique is an integer, which is a big limit to its use range. This paper uses Sun Tzu theorem to package other types of data so that it can be operated by homomorphic and dense. This algorithm enlarges the homomorphic encryption. At the same time, this paper also improves the Fourier transform of the calculation part of the algorithm. Through the application of the algorithm in the code confusion experiment, it can be seen that the application scope is not only expanded, but also the computational efficiency has been greatly improved without affecting its security. (3) the study of opaque predicate: opaque predicate The realization of word confusion is simple, but the making of an opaque predicate that is difficult to recognize is necessary. The N state hash opaque predicate is a good choice. This paper introduces the idea of pseudo random sequence to improve the hash opaque predicate in N state, making it simple, and it can reduce the availability of software. Reading nature makes it difficult for the attacker to understand the functional information of the software. After improving the above three points, this paper realizes the multiple code confusion prototype system, and uses the system to protect the communication system, and encrypts the system database and program. The analysis and comparison of the pre confusing and confusing programs are highlighted. The advantages of the algorithm in this paper.
【學位授予單位】:中北大學
【學位級別】:碩士
【學位授予年份】:2017
【分類號】:TP311.5;TP309
【參考文獻】
相關期刊論文 前10條
1 王芳;白宇;;基于JavaScript的輕量化BASE64編碼及解碼算法[J];軟件;2015年04期
2 楊攀;桂小林;姚婧;林建財;田豐;張學軍;;支持同態(tài)算術(shù)運算的數(shù)據(jù)加密方案算法研究[J];通信學報;2015年01期
3 陳智罡;王箭;宋新霞;;全同態(tài)加密研究[J];計算機應用研究;2014年06期
4 康彥;;代碼混淆技術(shù)在軟件保護中的應用研究[J];赤峰學院學報(自然科學版);2014年06期
5 林如磊;王箭;杜賀;;整數(shù)上的全同態(tài)加密方案的改進[J];計算機應用研究;2013年05期
6 蔣華;劉勇;王鑫;;基于控制流的代碼混淆技術(shù)研究[J];計算機應用研究;2013年03期
7 趙玉潔;湯戰(zhàn)勇;王妮;房鼎益;顧元祥;;代碼混淆算法有效性評估[J];軟件學報;2012年03期
8 湯殿華;祝世雄;曹云飛;;整數(shù)上全同態(tài)加密方案的重加密技術(shù)[J];信息安全與通信保密;2012年01期
9 黃汝維;桂小林;余思;莊威;;云環(huán)境中支持隱私保護的可計算加密方法[J];計算機學報;2011年12期
10 袁征;馮雁;溫巧燕;張華;;構(gòu)造一種新的混淆Java程序的不透明謂詞[J];北京郵電大學學報;2007年06期
,本文編號:2164617
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2164617.html
最近更新
教材專著