对JAVA软件进行授权保护的方法及系统技术方案

技术编号:19745843 阅读:28 留言:0更新日期:2018-12-12 04:50
本发明专利技术公开了一种对JAVA软件进行授权保护的方法及系统,涉及计算机应用技术领域。所述方法包括:在软件的主体应用程序中插入第一授权校验模块,进行第一授权校验;在软件的公共包中插入授权校验生成模块,进行第二授权校验。通过本发明专利技术提供的对软件进行授权保护的方法及系统,能够避免授权校验代码被发现并修改,同时能够避免使用平台硬件的系统信息和本地动态库,能够在不牺牲JAVA跨平台性的情况下进行简单且低成本的有效授权。

【技术实现步骤摘要】
对JAVA软件进行授权保护的方法及系统
本专利技术涉及计算机应用
,具体而言,涉及对JAVA软件进行授权保护的方法及系统。
技术介绍
JAVA不依赖特定的操作系统和平台,具有一次编写,各平台均可以运行的特点。随着计算机技术的发展,JAVA已经由开始的桌面应用的开发语言发展成为后端服务器应用的主要开发语言,现在大量的软件使用J2EE(Java2PlatformEnterpriseEdition,JAVA2平台企业版)体系架构进行开发。但是因为JAVA平台的开源特点和为了JAVA能够跨平台运行而生成的中间态CLASS文件,导致JAVA类应用很难被授权保护,经常导致JAVA源码被抄袭或授权被破解的情况。现有技术中,使用外部C/C++程序进行授权校验或将CLASS文件进行加密的方法对JAVA软件进行授权保护。使用外部C/C++程序进行授权校验的方法一般是使用服务器的硬盘号、网卡MAC(MediaAccessControl,物理地址)对软件进行加密,这种方法需要为软件的各种平台开发对应的授权校验程序,在一定程度上牺牲了JAVA的跨平台性。同时,通常情况下,使用C/C++程序进行授权校验需要获取硬盘序号等系统信息,这种获取需要软件应用为高权限,但是一般软件应用都是低权限或者是虚拟化平台,无法获取真实的硬盘和网卡MAC等信息,从而导致使用这种方法无法对JAVA软件进行授权保护。CLASS文件使由JAVA编译器生成的一种8字节的二进制流文件,其中的各个数据项按顺序紧密的从前向后排列,相邻的项之间没有间隙,这样使得CLASS文件非常紧凑,体机轻巧,可以被JVM(JavaVirtualMachine,JAVA虚拟机)快速的加载至内存。标准的CLASS文件通过Java反编译工具可以很容易恢复出源码。将CLASS文件进行加密的方法是将CLASS文件进行加密,使用特定的CLASSLoader将加密的CLASS文件进行解密后加载到JVM中。该方法中,加密的CLASS文件容易被发现,并且因为CLASSLoader本身是不加密的,CLASS文件很容易被CLASSLoader破解。将破解后的CLASS文件输出,然后再进行反编译分析,很容易实现JAVA软件的授权破解。目前常见的JAVA软件保护方法主要是基于对JAVA进行加密、代码混淆,并且将代码的解密部分采用.dll或.so本地动态库的方法进行。但是,一旦使用本地动态库,JAVA应用的跨平台性就被大大削弱,同时,维护大量平台的本地库文件成本高昂。
技术实现思路
为防止JAVA软件的源码被抄袭和破解,同时保持JAVA软件的跨平台性,本专利技术提供了一种对JAVA软件进行授权保护的方法及系统。本专利技术所述的方法使用纯JAVA语言,使用两种机制进行双重认证。在软件的主体应用程序中插入第一授权校验模块,用于进行第一授权校验,同时引入类似木马的技术,在软件的公共包中随机插入代码混淆后的授权校验生成模块,用于进行第二授权校验。第二授权校验在过期后不进行任何提示,并且在软件启动时立刻运行,加大了软件破解的难度。根据本专利技术实施例的第一方面,提供一种对JAVA软件进行授权保护的方法,所述方法包括:在软件的主体应用程序中插入第一授权校验模块,进行第一授校验;在软件的公共包中插入授权校验生成模块,进行第二授权校验。在本专利技术的一些实施方式中,所述在软件的公共包中插入授权校验生成模块包括:随机从软件的公共包中选取第一公共包;从所述第一公共包中获取CLASS文件;从所述获取的CLASS文件中随机提取第一CLASS文件;将所述第一CLASS文件进行反编译,获得JAVA源码;在所述JAVA源码中插入授权校验生成模块的源码;将所述插入了授权校验生成模块源码的JAVA源码进行编译,生成第二CLASS文件;将包括所述第二CLASS文件的CLASS文件打包,获得插入了授权校验生成模块的第二公共包。在本专利技术的一些实施方式中,在软件的公共包中插入授权校验生成模块还包括通过下述方法获得所述授权校验生成模块:根据授权校验逻辑获得授权校验逻辑代码段;使用随机函数将所述授权校验逻辑代码段中的常量和函数名随机拆分为多个静态变量,进行代码混淆;将所述混淆后的代码使用JAVA的static块中线程进行独立封装,获得所述授权校验生成模块。在本专利技术的一些实施方式中,所述授权校验逻辑包括:获取软件的本地授权文件;使用所获取的本地授权文件进行授权校验;判断授权是否失效,若授权失效不进行任何提示,动态调用JAVA的退出函数直接退出系统。在本专利技术的一些实施方式中,通过连接远程校验服务器,使用所获取的本地授权文件进行授权校验。根据本专利技术实施例的第二方面,提供一种用于对JAVA软件进行授权保护的系统,所述系统包括:软件主体应用程序模块;第一授权校验模块,所述第一授权校验模块包含在软件的主体应用程序中,用于进行第一授权校验;软件的公共包;授权校验生成模块,所述授权校验生成模块被插入软件的公共包中,用于进行第二授权校验。在本专利技术的一些实施方式中,使用以下方式将所述授权校验生成模块插入到软件的公共包中:随机从软件的公共包中选取第一公共包;从所述第一公共包中获取CLASS文件;从所述获取的CLASS文件中随机提取第一CLASS文件;将所述第一CLASS文件进行反编译,获得JAVA源码;在所述JAVA源码中插入授权校验生成模块的源码;将所述插入了授权校验生成模块源码的JAVA源码进行编译,生成第二CLASS文件;将包括所述第二CLASS文件的CLASS文件打包,获得插入了授权校验生成模块的第二公共包。在本专利技术的一些实施方式中,所述授权校验生成模块使用以下方法获得:根据授权校验逻辑获得授权校验逻辑代码段;使用随机函数将所述授权校验逻辑代码段中的常量和函数名随机拆分为多个静态变量,进行代码混淆;将所述混淆后的代码使用Java的static块中线程进行独立封装,获得所述代码混淆后的授权校验生成模块。在本专利技术的一些实施方式中,所述授权校验逻辑包括:获取软件的本地授权文件;使用所获取本地授权文件进行授权校验;判断授权是否失效,若授权失效不进行任何提示,动态调用JAVA的退出函数直接退出系统。在本专利技术的一些实施方式中,通过连接远程校验服务器,使用所获取的本地授权文件进行授权校验。本专利技术实施例的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现本专利技术实施例所述的任一种对JAVA软件进行授权保护的方法。通过本专利技术实施例提供的对软件进行授权保护的方法及系统,能够避免授权校验代码被发现并修改,同时能够避免使用平台硬件的系统信息和本地动态库,能够在不牺牲JAVA跨平台性的情况下进行简单且低成本的有效授权。附图说明图1是根据本专利技术实施例对JAVA软件进行授权保护的方法流程图;图2是根据本专利技术实施例在软件的公共包中插入授权校验生成模块的流程图;图3是根据本专利技术实施例获得所述授权校验生成模块的流程图;图4示出了根据本专利技术实施例的对JAVA软件进行授权保护的系统结构示意图。具体实施方式以下结合附图和具体实施方式对本专利技术的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或本文档来自技高网
...

【技术保护点】
1.对JAVA软件进行授权保护的方法,其特征在于,所述方法包括:在软件的主体应用程序中插入第一授权校验模块,进行第一授权校验;在软件的公共包中插入授权校验生成模块,进行第二授权校验。

【技术特征摘要】
1.对JAVA软件进行授权保护的方法,其特征在于,所述方法包括:在软件的主体应用程序中插入第一授权校验模块,进行第一授权校验;在软件的公共包中插入授权校验生成模块,进行第二授权校验。2.根据权利要求1所述的方法,其特征在于,所述在软件的公共包中插入授权校验生成模块包括:随机从软件的公共包中选取第一公共包;从所述第一公共包中获取CLASS文件;从所述获取的CLASS文件中随机提取第一CLASS文件;将所述第一CLASS文件进行反编译,获得JAVA源码;在所述JAVA源码中插入授权校验生成模块的源码;将所述插入了授权校验生成模块源码的JAVA源码进行编译,生成第二CLASS文件;将包括所述第二CLASS文件的CLASS文件打包,获得插入了授权校验生成模块的第二公共包。3.根据权利要求2所述的方法,其特征在于,还包括通过下述方法获得所述授权校验生成模块:根据授权校验逻辑获得授权校验逻辑代码段;使用随机函数将所述授权校验逻辑代码段中的常量和函数名随机拆分为多个静态变量,进行代码混淆;将所述混淆后的代码使用JAVA的static块中线程进行独立封装,获得所述授权校验生成模块。4.根据权利要求3所述的方法,其特征在于,所述授权校验逻辑包括:获取软件的本地授权文件;使用所获取的本地授权文件进行授权校验;判断授权是否失效,若授权失效不进行任何提示,动态调用JAVA的退出函数直接退出系统。5.根据权利要求4所述的方法,其特征在于,所述授权校验逻辑还包括:通过连接远程校验服务器,使用所获取的本地授权文件进行授权校验。6.用于对JAVA软件进行授权保护的系统,其特征在于,所述系统包括:软件主体应用程序模块;第一授权校验...

【专利技术属性】
技术研发人员:张同虎
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1