欢迎来到天天文库
浏览记录
ID:46283986
大小:68.00 KB
页数:6页
时间:2019-11-22
《Java软件保护技术研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java软件保护技术研究论文导读:的应用程序,来达到增加反编译的难度,实现软件保护的方法实现步骤如下首先编写Java源代码然后通过Java编译器将Java源代码编译成Java类文件,最后使用本地编译工具将Java类文件编译成二进制的本机应用程序。代码混淆技术是目前比较成熟和流行的一种软件保护技术。关键词:Java,保护技术,研究一、本地化技术Java本地化是指通过将Java应用程序编译成本地应用程序,如Windows操作系统下扩展名为.ex。的应用程序,来达到增加反编译的难度,实现软件保护的方法实现步
2、骤如下:首先编写Java源代码,然后通过Java编译器将Java源代码编译成Java类文件,最后使用本地编译工具将Java类文件编译成二进制的本机应用程序。Java本地化技术产生的是二进制格式的可执行文件,与在虚拟机中执行的Java应用程序相比,可以产生更快的执行速度和更小的内存占用。由于程序已经从类文件被编译成二进制的可执行文件,原本类文件由于自身结构特性所带来的安全隐患也就随之消失了,反编译不再成为Java软件的安全威胁,在这种情况下,Java软件的安全性达了到与传统的用C/C++等语言开发的软件
3、一样的强度。发表论文。目前许多本地编译工具被开发出来,并获得广泛的使用。本地化技术虽然能够很好的保护Java类文件使其达到与传统的用C/C++等语台开发的软件一样的安全强度,但也存在以下几个问题:1、失去了一次编译,到处运行的跨平台性本地编译得到的是二进制格式的可执行文件,它依赖于具体的运行平台,只能在具体编译过程执行的同一种平台上运行,因而失去了跨平台的特性。2、无法应用于B/S结构的网络应用软件本地化技术依赖于具体的运行平台,生成的是一个可执行程序,这种解决方案可以较好的保护单机应用软件。但却无法
4、应用于网络应用软件,因为服务器端程序运行在Java应用服务器上,因此本地化的解决方案明显不支持这种类型的应用程序。3、错误定位困难Java软件本地化处理是一个相对较新的课题,诊断分析的理论基础薄弱,要准确的诊断和定位本机编译产生的Java应用程序中出现的问题十分困难,尤其当Java类文件版本中没有发生该错误的时候。二、远程接口访问技术分布式结构是现代软件开发中广泛采用的一种体系结构,通常将软件分为客户端和服务器端,核心的功能模块和业务流程都部署在服务器端为客户端提供服务,客户端负责采集数据、提交服务请
5、求和与服务器端通信,这种体系结构的采用可以提高系统的可移植性和互操作性,大幅度降低软件的开发成本。现在通过接口提供服务的标准和协议越来越多。把实现核心功能的类文件放在远程服务端,这种模式就是现在流行的Java服务器应用程序,也称为web应用程序。Web应用程序模式的发展不但适应了各种计算环境的需要,从另外一个角度看也实现了源代码的隔离,起到了保护Java软件的作用。可以通过远程接口an访问达到软件保护的目的,防止黑客或者其他软件分析人员通过反编译核心算法所在的类文件得到源代码。所谓远程接口访问是指将应
6、用和实现相分离,将软件的核心算法等关键部分部署在远程的应用服务器上,用户通过访问应用服务器的接口提交服务请求和获得服务,在整个过程中用户无法访问到关键部分的类文件。远程接口访问技术使得用户无法获得类文件,也就从根本上防止了对类文件进行反编译获得源代码的可能性。远程接口访问技术能有效地保护关键的Java类文件,从而达到软件保护的目的。发表论文。但是这种方式也存在着明显的局限性和很大的安全隐患:仁远程接口访问技术只适用于B/S结构或者分布式结构的软件,而对单机运行的应用软件则不适用。2、远程接口访问技术实
7、际上是将保护的焦点从关键的类文件转移到了应用服务器上。在这种体系结构下,制定完善的安全机制来保护端口至关重要,因为如果应用服务器被攻破,那么所有部署在服务器上的服务模块和类文件就完全暴露在攻击者面前,后果不堪设想。三、软件数字水印技术软件数字水印是众多数字水印的一种,它的主要保护对象是计算机代码,包括源代码和机器码。使得它们免于或者减少遭受非法复制和非法篡改的危险。由于计算机代码是不能容忍任何错误的,因此一些传统的利用可允许错误范围内修改计算机程序从而嵌入水印的方法将不适用于计算机软件。K软件数字水印
8、的用途(1)作为侵犯知识产权的证据在一般情况下,发生剽窃事件时,由于难以举证,常常难以判断真正的原创者。引入软件数字水印技术后,在程序中嵌入代表作者身份的软件数字水印,那么在对被怀疑的程序进行验证时,就可以用水印解码的方法从程序中得到真正的作者的信息。(2)发现被剽窃的程序要确定一款软件中是否包含剽窃的程序模块是一件很困难的事情,因为通常相对于程序整体而言,剽窃的程序模块只是很小的一部分,非法程序和原程序的具体规范可能会有很大的不同。利用数字水印可以有效
此文档下载收益归作者所有