基于代码混淆的软件保护技术研究
发布时间:2018-08-04 17:40
【摘要】:IT行业的不断发展使软件的运用出现在各行各业。软件功能的强大导致软件开发成本昂贵,软件破解和盗版现象日趋严重。为了减少软件开发者的损失,保证软件行业的正常运行,许多学校和企业加强了对软件保护研究的重视,并且设计了许多软件保护的方法。软件保护分为软加密和硬加密。硬加密虽然安全性高,但是价格昂贵;软加密由于成本低,所以运用普遍。代码混淆是软件保护中一种非常常用的软加密方法,混淆前和混淆后的程序在功能和行为上都是相同或相近的,主要目的是让那些逆向分析者很难运用逆向工程解读出软件设计人员所写的源程序。代码混淆主要分为三种类型,即布局混淆、数据混淆和控制混淆,本文分别将这3种混淆进行分析和对比,并且总结出了它们的优缺点,进而构造出多重代码混淆模型。本文对多重代码混淆所涉及到的单个混淆进行了研究:(1)基于伪随机置换的研究:置换混淆最大的特点就是执行效率高,但是单纯的置换安全性低,所以本文通过伪随机序列产生一些密钥,然后对程序中的标识符进行加密,最后进行了实验和分析。(2)同态加密技术的研究:同态加密技术的操作对象为整数,这对其使用范围是一个很大的限制。本文运用孙子定理对其它类型的数据进行包装,使之可用同态加密进行运算,这种算法扩大了同态加密的应用范围。同时本文对算法计算部分的傅里叶变换也进行了改进。通过该算法在代码混淆实验中的应用可以看出,其应用范围不仅得到了拓展,而且在不影响其安全性的前提下,计算效率也有了很大的提高。(3)不透明谓词的研究:不透明谓词混淆实现简单,但是制作出难以识别的不透明谓词是需要下一番功夫的,N态hash不透明谓词法是一个不错的选择。本文引入伪随机序列的思想对N态hash不透明谓词进行了改进,使得其生成简单方便,并且没有规律性,可以减少软件的可读性,使攻击者很难明白该软件的功能信息。在对以上三点做出改进后,本文实现了多重代码混淆原型系统,并应用该系统对通讯系统进行了保护,对系统数据库和程序进行了加密。通过对混淆前和混淆后的程序进行分析和对比,突出了本文算法的优势。
[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 杨攀;桂小林;姚婧;林建财;田丰;张学军;;支持同态算术运算的数据加密方案算法研究[J];通信学报;2015年01期
3 陈智罡;王箭;宋新霞;;全同态加密研究[J];计算机应用研究;2014年06期
4 康彦;;代码混淆技术在软件保护中的应用研究[J];赤峰学院学报(自然科学版);2014年06期
5 林如磊;王箭;杜贺;;整数上的全同态加密方案的改进[J];计算机应用研究;2013年05期
6 蒋华;刘勇;王鑫;;基于控制流的代码混淆技术研究[J];计算机应用研究;2013年03期
7 赵玉洁;汤战勇;王妮;房鼎益;顾元祥;;代码混淆算法有效性评估[J];软件学报;2012年03期
8 汤殿华;祝世雄;曹云飞;;整数上全同态加密方案的重加密技术[J];信息安全与通信保密;2012年01期
9 黄汝维;桂小林;余思;庄威;;云环境中支持隐私保护的可计算加密方法[J];计算机学报;2011年12期
10 袁征;冯雁;温巧燕;张华;;构造一种新的混淆Java程序的不透明谓词[J];北京邮电大学学报;2007年06期
,本文编号:2164617
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2164617.html