- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java类文件保护技术现状及发展趋势
摘 要
Java虽然能够跨平台使用具有较好的灵活性,并具有独立的编译方式,但是其源代码编译后,并没有生成二进制的文件,而是一种面向虚拟机的文件,我们称之为Java类文件,属于一种具有格式的中间代码,容易被黑客进行反编译Java,为其提供了可能性。反编译得到的代码和源代码差别不大,提高Java类文件的保护势在必行。
【关键词】Java类文件 文件加密 RSA ASE
1 引言
Java的开发资源丰富并且具有较为成熟的开发模式,因此,Java语言是目前较为主流的软件设计和开发语言。目前,Java语言已经广泛应用在嵌入式应用,企业管理,信息管理等领域中。Java字节码的文件中,对方法和变量的信息进行了全部的保留,通常这些符号携带者很多种语义信息。Java语言的这种特殊性质,让他很容易被黑客攻击,遭到代码的盗取,最终让知识产权受到侵害,所以,Java类文件加密技术的研发非常必要。
2 Java
2.1 简单性
Java是一种面向对象的语言形式,通过所提供的基本的方法完成软件的设计任务,因此,只要程序员能够理解基本的概念,就可以对软件进行开发。在Java语言中,并不需要考虑算法的重新加载以及多重继承的问题,通过垃圾的自动回收功能,能够简化软件程序开发人员对内存的管理工作。
2.2 面向对象的
在Java语言的程序设计中,主要针对的是对象和接口的设计,用简单的累计值和动态的连接模型完成设计。使用继承的机制,父类的信息和方法可以继承过来,很好地达到了代码复用的效果。
2.3 安全性
网络病毒的盛行,因此,Java语言中,需要考虑其安全性。在Java语言中,并没有指针的设计,所以对内存的访问通过对象实例的变量来完成,可以减少指针操作构成中产生的错误。
2.4 跨平台性
Java的最大优点就是无需考虑平台的特征,可以移植到不同的机器上完成软件谁,让程序员摆脱平台开发工具的限制,实现了一次编写,处处可用的目的。
3 Java类文件
3.1 Java类文件结构
Java class文件的结构主要?对的是一个类或者是接口的描述,其中包括了对Java程序设计应用到的所有的类和接口的信息,是Java虚拟机能够直接加载的文件。所以在程序设计中类文件非常重要,只有正确的对类文件进行使用,才能够完成程序的开发和设计。
3.2 Java反编译
在Java中使用的反编译器是javap对类文件完成反编译工作。但是反编译的结果不是想要的源代码,包括局部变量和汇编代码两部分。此外,其他的反编译工具Mocha,WinDis在反编译中能够给出和源代码基于一样的代码。Java类文件并不是一个二进制的文件,是一种具有格式的中间的代码,因此,会增加反编译的可能性。这种安全问题,主要还是来自于Java本身的一些特点。
(1)Java的跨平台特征,使得Java虚拟机的指令集要比汇编的指令集简单,为了适应各种平台的需求,实现通用性,降低了反汇编的复杂性,产生安全隐患。
(2)在Java编译器中,要将类编译成为一个单独的类文件,因此,这也从某种程度上简化了反编译的过程。
(3)java类文件中,保存了很多原有的方法和变量的名称,因此,通过对名称和变量方法的访问,让反编译变得更容易。
4 Java类文件保护技术
4.1 编辑本地执行文件
这种类文件保护在指定的计算机环境上,编译成可运行的程序。因此,编译后得到的文件是二进制的可执行文件。相对于在Java虚拟机中对类文件进行加载和执行,这种本地编译的方式具有节约空间,并且程序执行速度快等优点。这种本地编译的方式的全晨读和本地执行程序的安全程度相似。
4.2 数字水印技术
数字水印技术根据著作权人的基本信息,按照某种特定的方式植入信息,在出现版权纠纷的时候,会通过设定的算法提取数字水印,验证版权的归属,保护著作人的合法权益,避免产生盗版的问题。目前,数字水印技术已经应用在图像,视频和声音的多媒体中。水印的存在,要在不损坏原来数据的前提下进行,并且在软件中应用数字水印是目前主流的一种发展趋势,能够保护计算机代码的安全性。
但是这种数字水印技术也不是不能攻破的,在Java类文件中为了防止反编译现象的出现,在编译代码的时候要对其进行优化设计,否则很容易被反编译程序员看出,将原来的数字水印擦掉,后者伪造水印。
4.3 代码混淆技术
在反编译器出现以后,代码混淆技术和理论也相应的得到了发展。目前较为常见的混淆代码器包括了:JODE,Jsrink等。此外,Sun公司也退出了自己的混淆器JADE。但是,代码混淆技术也存在一定的局限性。因为代码
原创力文档


文档评论(0)