Ja软件保护技术的应用与不足探析

点赞:30907 浏览:143069 近期更新时间:2024-01-21 作者:网友分享原创网站原创

【摘 要 】Ja以其简单性、跨平台性等各种优秀特性赢得许多著名公司的青睐,但Ja软件在知识产权的保护上也面临着很大的安全风险.通过分析Ja软件面临的风险,对本地化技术、远程接口访问技术、软件数字水印技术以及混淆技术等软件保护技术的用途和不足进行了简要的分析.

【关 键 词 】Ja软件保护;混淆技术;数字水印技术

1.Ja软件面临的风险

在Ja的编译过程中不将变量和方法等符号的引用转换为数值引用,也不确定程序执行过程中的内存状态,只是将这些符号的引用信息保留在类文件中,由解释器在运行过程中创建内存布局,然后再通过查找表来确定一个变量或方法所在的地址.Ja源代码不像C/C++源代码一样被编译成二进制机器码,编译Ja源代码会生成中间字节码,是一种与平台无关的源代码的表示方式.字节码在加载后可以被解释或编译,这就产生了高级编程语言到底层机器代码之间的两步变换.是这一中间步骤使得反编译Ja字节码得到的源代码近乎完美.字节码携带了在源文件中可以找到的所有重要信息.尽管注释和格式丢失了,但所有的方法、变量和编程逻辑都完好的保留下来,由于字节码不表示最底层机器语言,因此代码的格式非常类似于源代码.

Ja软件保护技术的应用与不足探析参考属性评定
有关论文范文主题研究: 关于知识产权的论文范例 大学生适用: 函授论文、学院论文
相关参考文献下载数量: 20 写作解决问题: 写作资料
毕业论文开题报告: 论文提纲、论文选题 职称论文适用: 杂志投稿、职称评中级
所属大学生专业类别: 写作资料 论文题目推荐度: 优秀选题

Ja类文件不是真正的二进制文件,而是一种有格式的中间代码,这就给反编译Ja类文件提供了可能.反编译得出的代码具有很高的质量,基本上可以完全反映编写者的思路,这样一来,软件开发商和软件开发人员投入大量精力和艰苦努力编写的源代码就很容易被窃取,软件中包含的重要算法也会泄露出去.因此Ja应用程序也就毫无保密性可言,Ja软件在知识产权的保护上面临着很大的安全风险.

2.Ja软件保护技术研究

目前的Ja软件的保护方法大多是基于单机应用的研究,传统的Ja软件保护方法主要有本地化技术、远程接口访问技术、软件数字水印技术以及混淆技术,其中软件数字水印技术和混淆技术是目前研究、应用较多,受到广泛关注的技术.

2.1 本地化技术

Ja本地化,是指通过将Ja应用程序编译成本地应用程序来达到增加反编译的难度,实现软件保护的方法.实现步骤如下:首先编写Ja源代码,然后通过Ja编译器将Ja源代码编译成Ja类文件,最后使用本地编译工具将Ja类文件编译成二进制的本机应用程序.本地化技术虽然能够很好的保护Ja类文件,使其达到与传统的用C/C++等语言开发的软件一样的安全强度,但也存在一些问题:本地化技术能够为较简单的单户机应用软件提供较高水平的保护,其反编译的难度与传统的C/C++开发的软件相同,但还无法对复杂的应用软件提供全面的保护,也无法保护B/S结构的应用软件,此外,要准确的诊断和定位本机编译产生的Ja应用程序中出现的问题也是十分困难.虽然目前发展还很不成熟,但却是Ja领域一项广受关注的技术.实践和理论己经证明,对于某些应用软件和使用环境,本地化技术不失为一种优秀的解决方案.

2.2 远程接口访问技术

分布式结构是现代软件开发中广泛采用的一种体系结构,通常将软件分为客户端和怎么写作器端,核心的功能模块和业务流程都部署在怎么写作器端为客户端提供怎么写作,客户端负责采集数据、提交怎么写作请求和与怎么写作器端通信,这种体系结构的采用可以提高系统的可移植性和互操作性,大幅度降低软件的开发成本.远程接口访问技术能有效地保护关键的Ja类文件,从而达到软件保护的目的.但是这种方式也存在着明显的局限性和很大的安全隐患:远程接口访问技术实际上是将保护的焦点从关键的类文件转移到了应用怎么写作器上.在这种体系结构下,制定完善的安全机制来保护端口至关重要,因为如果应用怎么写作器被攻破,那么所有部署在怎么写作器上的怎么写作模块和类文件就完全暴露在攻击者面前,后果不堪设想.

2.3 软件数字水印技术

软件数字水印是众多数字水印的一种,它的主要保护对象是计算机代码,包括源代码和机器码.使得它们免于或者减少遭受非法复制和非法篡改的危险,由于计算机代码是不能容忍任何错误的,因此一些传统的利用可允许错误范围内修改计算机程序从而嵌入水印的方法将不适用于计算机软件.软件数字水印技术也存在一些不足,比如:需要插入额外的代码,需要仔细地编写函数及其调用,否则容易被有经验的反编译者识破,从而擦除水印.另外,静态软件数字水印算法的健壮性相对较差,而动态软件数字水印算法虽然具有很好的健壮性,但是它只能保护整个应用程序,而不能保护某一部分特定的代码,同时,动态软件数字水印的检测方式令它的某些应用受到限制.目前的水印算法在提供可靠的版权证明方面或多或少都有一些的尚不完善的地方,因此寻找能提供完全可靠版权保护的软件数字水印算法成为一个重要的课题.软件数字水印的用途主要有以下几个方面:作为侵犯知识产权的证据;发现被剽窃的程序;追踪非法拷贝的源头.


2.4 混淆技术

代码混淆技术是目前比较成熟和流行的一种软件保护技术.代码混淆技术是对类文件进行代码语义、程序流程和逻辑结构的重新组织,代码混淆并不能增加反编译的难度,使用反编译器仍然可以对混淆后的类文件进行反编译,得到代码,但此时的代码是经混淆后的代码,可读性已经大大降低,难以从代码中发现源代码的编写思路和关键算法,从而达到保护软件的目的.混淆是一个相对安全的过程,可以完整地保留应用程序的功能.但某些情况下,混淆程序所执行的变换也可能会影响程序的正常运行.如:动态类加载的问题、反射问题、串行化问题和违反命名惯例的问题,这些问题虽然较少出现,但却会影响程序的正常执行,另外,混淆技术的应用使得维护应用程序和排除故障变得更加困难,有时甚至是不可能的.Ja异常事件处理是隔离有缺陷代码的一种有效方式,而查看堆栈跟踪一般可以告诉用户何处出错以及出什么错.为源代码文件名和行编号保留调试信息,保证运行时可以报告出错代码的准确位置.混淆程序可能会禁止这一特性并使调试变得困难,因为开发人员只能看到被混淆的类名称而不是真正的类名称和行编号.

3.结束语

目前己经有很多针对Ja软件的保护方法,在一定程度上起到了保护Ja软件的作用,但是这些方法都有各自的局限性和不足.Ja软件的知识产权保护问题也遭遇了非常大的挑战,许多厂商和个人投入大量人力物力开发的软件被侵权,一些重要的算法和创新思想被抄袭.因此,研究针对Ja软件的保护方法已经迫在眉睫.