基于Java的代码混淆技术研究毕业论文
2021-10-17 18:31:06
摘 要
自从Java语言的广泛运用,Java程序也越来越多,但同时也面临着被攻击的风险,使得保护Java程序的知识产权面临着很大的安全风险。所以Java代码的安全保护引起越来越多的重视,而代码混淆技术可以有效的对软件攻击进行预防,所以针对代码混淆的研究有着十分大的意义。
论文的主要内容有:
- 介绍目前的Java现状以及国内外关于代码混淆的研究现状。紧接着介绍Java的特性,以及.class文件的介绍和Java虚拟机的处理机制,进一步说明了Java代码混淆的重要性以及迫切性。
- 根据目前面对的巨大威胁:通过盗取Java源代码或者盗取重要信息而牟利的攻击者日益频繁的攻击。对于Java代码混淆的研究迫在眉睫。介绍了目前已有的四种代码混淆方法,并分析了它们的不足和局限性。
- 根据对代码混淆技术的研究,总结出一套完整的混淆方案。首先通过外形混淆方案对直观代码进行保护,再通过数据混淆方案,对连接代码块的局部变量和类型进行修改和隐藏,大大加强数据保护,最后通过控制混淆方案,通过修改控制流信息,破坏系统结构图,再使用平行控制流混淆将代码块平行化,混淆攻击者和反编译器的判断。
- 通过对本文所提出混淆方案的可行性、功能性以及有效性多方面进行测试与对比,验证了该混淆方案的实用性。提出仍需解决的问题,确定了日后的研究方向。
总而言之,本文是对当前已有的混淆方案进行研究,研究出一套混淆方案,在借鉴现今的混淆方案进行了一定的优化以及创新,最后通过测试证明了其有效性。
关键词:类文件,代码混淆,反编译,逆向工程
Abstract
Since the widespread application of the Java language, Java programs are more and more, but it also faces the risk of being attacked, in order to make the Java program of intellectual property protection is faced with a lot of security risks.So Java code safety protection cause the attention of more and more, the code obfuscation techniques can be effective to prevent software attack, so the study of code confusion has the very big significance.
The main content of the thesis are as follows:
1. Introduce the present situation of Java and confused about the code in the frontal research status at home and abroad.Then this paper introduces the features of Java, and. The introduction of class files and the Java virtual machine processing mechanism, further shows the Java code to confuse the importance and urgency.
2. According to the current in the face of the huge threat: by stealing the Java source code or steal the important information and an attacker increasingly frequent attacks.Research on Java code confusion is imminent.There are four types of code confusion method are introduced, and analyzed their shortcomings and limitations.
3. According to the study of code obfuscation techniques, i summarizes a set of complete confusion.First by confusion appearance scheme to protect visual code through data confusion, the local variables and type of code blocks west of the connection in the modified and hidden, greatly enhance data protection, finally confused by controlling scheme, by modifying the control flow information, system structure diagram, using the parallel control flow to confuse the code block parallel, confuse the judgment of the attacker and decompilation.
4. Confused by the presented scheme is feasible, the functional effectiveness and various testing and comparison, i proved the practicability of the mixed solution.We still need to solve the question, to determine the research direction in the future.
To sum up, this article is a research scheme of the current existing confusion, developed a set of confusion, now some confusion of the scheme in reference to the optimization and innovation, finally through test to prove its validity.
Keywords: Class file, Code confusion, Reverse compile,Reverse engineering
目录
第1章 绪论 1
1.1研究背景及意义 1
1.2国内外研究现状 2
1.3论文构成 3
1.4本章小结 3
第2章 Java概述以及类文件介绍 4
2.1Java概述 4
2.2CLASS文件格式 4
2.3CLASS文件检验机制 6
2.4本章小结 7
第3章 代码混淆技术 8
3.1代码混淆定义 8
3.2混淆的分类 9
3.2.1外形混淆 9
3.2.2数据混淆 10
3.2.3控制混淆 10
3.2.4预防混淆 11
3.3混淆技术对比 11
3.4本章小结 12
第4章 基于Java的混淆方案 13
4.1基于外形混淆方案 13
4.2基于数据混淆方案 14
4.2.1隐藏控制的局部变量 14
4.2.2混淆类信息 15
4.3基于控制流的混淆方案 19
4.3.1修改控制信息混淆 19
4.3.2平行控制流混淆 24
4.4本章小结 29
第5章 混淆方案有效性与实验 30
5.1混淆方案功能测试 30
5.2混淆方案性能分析 30
5.3与其他混淆器的性能对比 31
5.4本章小结 33
第6章 总结与展望 34
6.1总结 34
6.2展望 35
参考文献 36
致谢 37
- 绪论
1.1研究背景及意义
目前,随着信息化时代的进展,互联网和计算机技术越来越发达,人们对互联网和计算机的需求越来越大,这自然就少不了对软件的需求,而作为目前最热门,也是应用最广泛的编程语言--Java,所产出的软件量更是数不胜数,早已是目前最为广泛,而且应用最多的软件产品。然而随着科技的进步,目前互联网领域的软件开发、传播以及使用的更加便捷。Java行业迎来了发展浪潮,然而也存在很多的威胁以及挑战。虽然Java软件凭借着其强大的兼容性,抢占了非常大的市场,然而正因如此,盗版软件的数量也极其庞大。在美国的一份研究报告显示,在2015年,全球范围的盗版率增长了57%,这是一个非常恐怖的数字。这些软件的盗版不单单是对Java软件开发商造成了经济上的损失,而且也影响了Java公司企业的发展,同时也打消了Java开发的热情。因此关于Java软件的防范问题,是目前刻不容缓的问题之一,渐渐引起了社会各界的关注。随着越来越多的专家学者加入到这个问题的研究与解决,目前已经有了很多的方法和措施。
目前软件方面的问题主要是两种:一是防止恶意代码。当我们的软件程序远程进行时,为了防止其他程序的蓄意毁坏,我们仍需做一些措施。自从计算机开始应用以来,对计算机的攻击与防御一直都在进行着竞争。二是关于软件代码的盗窃。指的是,在未经软件开发商方允许条件下,将其中代码直接据为所有。然而在我们的所知中,软件代码就是一个软件的核心,所有的东西都在代码中体现,可能有一些极为重要的信息,可能就被别人所盗窃,这个后果不堪设想。而目前软件代码剽窃的情况,已经有不可阻挡之势。