一种基于JNI运行Java加密jar包的方法及系统技术方案

技术编号:35081342 阅读:27 留言:0更新日期:2022-09-28 11:50
本发明专利技术提出了一种基于JNI运行Java加密jar包的方法及系统,涉及加密技术领域。包括:获取加密jar包;设置启动引导程序对Java解密方法进行native修饰,而后加载Java解密模块到虚拟机中;并将加密jar包引导进入解密模块;利用native关键字修饰Java解密方法,根据类加载器的定义,对加密后Jar包中类文件及资源文件进行加载;利用加密工具加密jar包,而后进行再打包;最后按照预设参数传递加密jar包路径给启动引导程序。其能够在解密启动阶段,阻止对java语言的反编译,使得java语言编写的应用安全性得到提高。全性得到提高。全性得到提高。

【技术实现步骤摘要】
一种基于JNI运行Java加密jar包的方法及系统


[0001]本专利技术涉及加密
,具体而言,涉及一种基于JNI运行Java加密jar包的方法及系统。

技术介绍

[0002]为了保护代码数据的安全,开发人员在完成一个jar包的开发后,通常需要对该jar包进行加密。目前,对jar包进行加密的方法主要是基于jar包内资源的加密以及通过拓展ClassLoader来实现,但现有技术中由于Java字节码的抽象级别较高,因此使用Java语言编写的应用可以被反编译,存在安全性差的问题;故而需要一种基于JNI运行Java加密jar包的方法及系统。

技术实现思路

[0003]本专利技术的目的在于提供一种基于JNI运行Java加密jar包的方法及系统,其能够在解密启动阶段,阻止对java语言的反编译,使得java语言编写的应用安全性得到提高。
[0004]本专利技术的实施例是这样实现的:第一方面,本申请实施例提供一种基于JNI运行Java加密jar包的方法,其包括获取加密jar包;设置启动引导程序对Java解密方法进行native修饰,而后加载Java解密模块到虚拟机中;并将加密jar包引导进入解密模块;利用native关键字修饰Java解密方法,根据类加载器的定义,对加密后Jar包中类文件及资源文件进行加载;利用加密工具加密jar包,而后进行再打包;最后按照预设参数传递加密jar包路径给启动引导程序。
[0005]在本专利技术的一些实施例中,加载Java解密模块到虚拟机中的步骤包括:将解密模块编译后每个class文件注册到虚拟机中。
[0006]在本专利技术的一些实施例中,并将加密jar包引导进入解密模块的步骤包括:将需运行的加密jar包路径等信息传递给解密模块,解密模块将加密jar包路径注册进类加载器。
[0007]在本专利技术的一些实施例中,设置启动引导程序对Java解密方法进行native修饰的步骤包括:将c语言编译的启动引导程序中解密加密后jar包的函数,与解密模块的Java代码关联。
[0008]在本专利技术的一些实施例中,利用加密工具加密jar包后的步骤还包括:创建一个空的MANIFEST.MF文件,而后对加密jar包进行再打包。
[0009]在本专利技术的一些实施例中,加密工具采用openssl加密工具。
[0010]在本专利技术的一些实施例中,类加载器采用URLClassloader类加载器。
[0011]第二方面,本申请实施例提供一种基于JNI运行Java加密jar包的系统,其包括读取模块,用于获取加密jar包;启动引导模块,用于设置启动引导程序对Java解密方法进行native修饰,而后加载Java解密模块到虚拟机中;并将加密jar包引导进入解密模块;解密模块,用于利用native关键字修饰Java解密方法,根据类加载器的定义,对加密后Jar包中类文件及资源文件进行加载;加密再打包模块,用于利用加密工具加密jar包,而后进行再
打包;运行模块,用于按照预设参数传递加密jar包路径给启动引导程序。
[0012]第三方面,本申请实施例提供一种电子设备,包括至少一个处理器、至少一个存储器和数据总线;其中:处理器与存储器通过数据总线完成相互间的通信;存储器存储有可被处理器执行的程序指令,处理器调用程序指令以执行一种基于JNI运行Java加密jar包的方法。
[0013]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现一种基于JNI运行Java加密jar包的方法。
[0014]相对于现有技术,本专利技术的实施例至少具有如下优点或有益效果:针对java语言编写的应用容易被反编译的问题,本设计替换传统使用java命令运行jar包的方式,采用C语言编写的JAR包启动引导程序,其中启动程序功能包括jar包解密以及jar包启动引导。由此使得在解密启动阶段,阻止对java语言的反编译,使得java语言编写的应用安全性得到提高。
附图说明
[0015]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0016]图1为本专利技术中一种基于JNI运行Java加密jar包的方法的时序图;图2为本专利技术中一种基于JNI运行Java加密jar包的方法的流程图;图3为本专利技术中一种基于JNI运行Java加密jar包的系统的结构示意图;图4为本专利技术中一种电子设备的结构示意图。
[0017]图标:1、读取模块;2、启动引导模块;3、解密模块;4、加密再打包模块;5、运行模块;6、处理器;7、存储器;8、数据总线。
具体实施方式
[0018]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0019]因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0021]需要说明的是,在本文中,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0022]在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
[0023]下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
[0024]实施例1请参阅图1和图2,为本申请实施例提供的一种基于JNI运行Java加密jar包的方法,针对java语言编写的应用容易被反编译的问题,本设计替换传统使用java命令运行jar包的方式,采用C语言编写的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JNI运行Java加密jar包的方法,其特征在于,包括获取加密jar包;设置启动引导程序对Java解密方法进行native修饰,而后加载Java解密模块到虚拟机中;并将所述加密jar包引导进入解密模块;利用native关键字修饰Java解密方法,根据类加载器的定义,对加密后Jar包中类文件及资源文件进行加载;利用加密工具加密jar包,而后进行再打包;最后按照预设参数传递加密jar包路径给所述启动引导程序。2.如权利要求1所述的一种基于JNI运行Java加密jar包的方法,其特征在于,加载Java解密模块到虚拟机中的步骤包括:将解密模块编译后每个class文件注册到所述虚拟机中。3.如权利要求1所述的一种基于JNI运行Java加密jar包的方法,其特征在于,并将所述加密jar包引导进入解密模块的步骤包括:将需运行的加密jar包路径等信息传递给所述解密模块,所述解密模块将加密jar包路径注册进类加载器。4.如权利要求1所述的一种基于JNI运行Java加密jar包的方法,其特征在于,设置启动引导程序对Java解密方法进行native修饰的步骤包括:将c语言编译的启动引导程序中解密加密后jar包的函数,与解密模块的Java代码关联。5.如权利要求1所述的一种基于JNI运行Java加密jar包的方法,其特征在于,利用加密工具加密jar包后的步骤还包括:创建一个空的MANIFEST.MF文件,而后对加密ja...

【专利技术属性】
技术研发人员:唐更新罗宁宋辉赵卫国
申请(专利权)人:北京中安星云软件技术有限公司
类型:发明
国别省市:

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

1