论文部分内容阅读
Java的出现是计算机信息交换的一个重要里程碑,以其简单性、跨平台性等各种优秀特性彻底改变了应用软件的开发模式,带来了软件开发的一次革命,在软件开发的各个领域得到了大量的应用。但是这也造成了Java软件在知识产权的保护上面临着很大的安全风险,原因主要在于Java跨平台的灵活性源于独特的编译方式,Java源代码经编译后,生成的不是面向处理器的二进制文件而是面向虚拟机的Java类文件。正是因为类文件是一种有格式的中间代码,其中保留了源代码文件中的大多数信息,为反编译Java类文件提供了条件。反编译得出的代码具有很高的质量,基本上可以完全反映编写者的思路。近年来,许多公司和Java开发人员在深入研究Java类文件和虚拟机的基础上,研究开发了多种方法来保护Java类文件,这些方法包括:代码隔离技术、数字水印技术以及代码混淆等技术。这些保护方法,在一定的程度上可以起到保护Java软件的作用,但是它们各自都存在明显的局限性和缺陷。Java虚拟机是Java技术的核心部分,深入研究Java虚拟机内部机制,不但能够快速掌握先进的计算机技术,获得大量有益的经验,而且对于我们解决Java的安全有着根本性的帮助。本文通过对相关资料收集、整理,透彻剖析Java虚拟机类装载的内部机制,深入研究了类装载器的体系结构,如双亲委派模式、class文件结构等。基于对Java虚拟机类装载结构的分析研究与自己在实际中应用相结合,定制一个虚拟机的类装载器,同时结合密码学中的加密体制、JNI技术和修改JVM实现了一种新的Java软件保护方案—类文件保护方案。本方案的核心设计思想如下:①用本地加密的方法来保护Java类文件,以有效地对抗反编译。②定制一个ClassLoader完成加密类文件的解析加载。③对定制ClassLoader进行加密,以确保定制ClassLoader的安全。④进而修改JVM使其能装载加密过的定制ClasssLoader,杜绝最后的安全漏洞。实验结果表明本方案具有较高的安全性,同时具有良好的通用性,不仅可以应用在单机应用软件上,也可以应用在网络应用软件上。综上,本文为Java软件保护提出的保护方案是一次非常有意义的探索和实践。