java程序安全处理方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:30827686 阅读:19 留言:0更新日期:2021-11-18 12:31
本发明专利技术公开一种java程序安全处理方法、装置、计算机设备及存储介质。该方法包括:获取java源码,对java源码进行编译,获取java源码对应的原始class文件;对原始class文件进行解析,获取原始class文件对应的类路径和至少一个方法源代码,方法源代码包括方法签名和原始方法体;对方法源代码进行加密混淆处理,得到方法体密文,基于类路径、方法签名和方法体密文,获取方法源代码对应的目标混淆变量;保留方法源代码的方法签名,对方法源代码进行清空处理,获取方法源代码对应的方法混淆代码;基于所有方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件;基于混淆class文件,封装形成目标Jar包。该方法可保障java源码混淆的安全性和可行性,避免局限性。避免局限性。避免局限性。

【技术实现步骤摘要】
java程序安全处理方法、装置、计算机设备及存储介质


[0001]本专利技术涉及计算机安全
,尤其涉及一种java程序安全处理方法、装置、计算机设备及存储介质。

技术介绍

[0002]java是一种高层抽象语言,具有易于反汇编特性,其编译后的程序包中包含大量的源代码变量、函数名和数据结构等信息,使得他人可根据编译后的程序包,快速获取与源代码差别不到的反汇编代码。
[0003]为了防止源代码泄露,现有技术通过需将java编译后的java源码进行混淆处理,一般是利用“不能直接猜出含义的通用变量名和函数名”,替换编译后的程序包中“具有明显语义信息的变量名和函数名”,以使逆向工程得到难以理解的java源码。这种java源码混淆处理方式存在如下不足:其一是混淆处理具有局限性,即通过变量名和函数名进行混淆处理,在被混淆的java程序被第三方引用时,由于第三方引用只会基于被混淆之前的变量名和函数名进行程序调用,这种混淆处理方式会导致java程序异常,使得混淆后的java程序不能正常运行。其二是混淆处理不能保证代码安全,这种混淆处理方式仅改变变量名和函数名等字符串,没有改变程序逻辑,容易被他人基于程序逻辑,反向推导出其源代码。

技术实现思路

[0004]本专利技术实施例提供一种java程序安全处理方法、装置、计算机设备及存储介质,以解决现有java源码混淆处理过程中存在的局限性和安全性的问题。
[0005]一种java程序安全处理方法,包括:
[0006]获取java源码,对所述java源码进行编译,获取所述java源码对应的原始class文件;
[0007]对所述原始class文件进行解析,获取所述原始class文件对应的类路径和至少一个方法源代码,所述方法源代码包括方法签名和原始方法体;
[0008]对所述方法源代码进行加密混淆处理,得到方法体密文,基于所述类路径、所述方法签名和所述方法体密文,获取所述方法源代码对应的目标混淆变量;
[0009]保留所述方法源代码的方法签名,对所述方法源代码进行清空处理,获取所述方法源代码对应的方法混淆代码;
[0010]基于所有所述方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件;
[0011]基于混淆class文件,封装形成目标Jar包。
[0012]一种java程序安全处理装置,包括:
[0013]源码编译模块,用于获取java源码,对所述java源码进行编译,获取所述java源码对应的原始class文件;
[0014]原始文件解析模块,用于对所述原始class文件进行解析,获取所述原始class文
件对应的类路径和至少一个方法源代码,所述方法源代码包括方法签名和原始方法体;
[0015]加密混淆模块,用于对所述方法源代码进行加密混淆处理,得到方法体密文,基于所述类路径、所述方法签名和所述方法体密文,获取所述方法源代码对应的目标混淆变量;
[0016]代码混淆获取模块,用于保留所述方法源代码的方法签名,对所述方法源代码进行清空处理,获取所述方法源代码对应的方法混淆代码;
[0017]混淆文件形成模块,用于基于所有所述方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件;
[0018]目标Jar包封装模块,用于基于混淆class文件,封装形成目标Jar包。
[0019]一种java程序安全处理方法,包括:
[0020]获取目标Jar包,对所述目标Jar包进行解析,获取所述目标Jar包对应的混淆class文件;
[0021]对所述混淆class文件进行解析,获取目标混淆变量和方法混淆代码,所述目标混淆变量包括类路径、方法签名和方法体密文,所述方法混淆代码包含方法签名和空白方法体;
[0022]对所述目标混淆变量的方法体密文进行解密处理,获取所述目标混淆变量对应的方法体明文;
[0023]将所述目标混淆变量对应的方法体明文,替换与所述类路径和所述方法签名相对应的方法混淆代码的空白方法体,获取所述方法混淆代码还原的方法源代码;
[0024]基于所有所述方法混淆代码还原的方法源代码,获取原始class文件,采用类加载器加载所述原始class文件。
[0025]一种java程序安全处理装置,包括:
[0026]混淆文件获取模块,用于获取目标Jar包,对所述目标Jar包进行解析,获取所述目标Jar包对应的混淆class文件;
[0027]混淆文件解析模块,用于对所述混淆class文件进行解析,获取目标混淆变量和方法混淆代码,所述目标混淆变量包括类路径、方法签名和方法体密文,所述方法混淆代码包含方法签名和空白方法体;
[0028]混淆变量解密模块,用于对所述目标混淆变量的方法体密文进行解密处理,获取所述目标混淆变量对应的方法体明文;
[0029]混淆代码还原模块,用于将所述目标混淆变量对应的方法体明文,替换与所述类路径和所述方法签名相对应的方法混淆代码的空白方法体,获取所述方法混淆代码还原的方法源代码;
[0030]原始文件获取模块,用于基于所有所述方法混淆代码还原的方法源代码,获取原始class文件,采用类加载器加载所述原始class文件。
[0031]一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述java程序安全处理方法。
[0032]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述java程序安全处理方法。
[0033]上述java程序安全处理方法、装置、计算机设备及存储介质,可解析java源码编译
形成的原始class文件,获取类路径和至少一个方法源代码。对方法源代码进行加密混淆处理得到方法体密文,以获取密文形式的代码信息,再基于类路径、方法签名和方法体密文,获取方法源代码对应的目标混淆变量,使得目标混淆变量既包含方法体密文,且包含类路径和方法签名等可唯一指向某一特定的方法源代码的信息,可保障目标混淆变量的安全性且唯一指向性。采用保留方法源代码的方法签名并对方法源代码进行清空处理这种混淆处理方式,可保障获取到的方法混淆代码中不包含明文形式的原始方法体,以避免他人利用反编译工具逆向破解方法混淆代码,从而保障方法混淆代码的安全性,且方法混淆代码保留方法签名,可唯一指向特定的方法源代码,可保障java程序的正常运行。再基于所有方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件,使得混淆class文件中包含目标混淆变量和方法混淆代码,而不包含方法源代码,使得混淆class文件不易被反编译工具反向推导出真实的方法源代码,从而保障混淆class文件的安全性,且目标混淆变量和方法混淆代码可还原解析出方法源代码,以保障基于混淆class文件形成的目标Jar包的可运行性,避免混淆处理所导致无法被第三方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种java程序安全处理方法,其特征在于,包括:获取java源码,对所述java源码进行编译,获取所述java源码对应的原始class文件;对所述原始class文件进行解析,获取所述原始class文件对应的类路径和至少一个方法源代码,所述方法源代码包括方法签名和原始方法体;对所述方法源代码进行加密混淆处理,得到方法体密文,基于所述类路径、所述方法签名和所述方法体密文,获取所述方法源代码对应的目标混淆变量;保留所述方法源代码的方法签名,对所述方法源代码进行清空处理,获取所述方法源代码对应的方法混淆代码;基于所有所述方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件;基于混淆class文件,封装形成目标Jar包。2.如权利要求1所述的java程序安全处理方法,其特征在于,所述对所述方法源代码进行加密混淆处理,得到方法体密文,基于所述类路径、所述方法签名和所述方法体密文,获取所述方法源代码对应的目标混淆变量,包括:获取所述java源码对应的目标公钥,采用所述目标公钥对所述方法源代码的原始方法体进行加密,得到方法体密文;将所述类路径和所述方法签名拼接形成目标健,将所述方法体密文确定为目标健,将所述目标健和所述目标健形成的键值对,确定为所述方法源代码对应的目标混淆变量。3.如权利要求1所述的java程序安全处理方法,其特征在于,所述基于所有所述方法源代码对应的目标混淆变量和方法混淆代码,形成混淆class文件,包括:基于所有所述方法源代码对应的目标混淆变量,获取class文件变量;依据至少一个方法源代码对应的代码执行顺序,对至少一个方法源代码对应的方法混淆代码进行排序,获取class文件代码;根据所述class文件变量和所述class文件代码,形成混淆class文件。4.一种java程序安全处理方法,其特征在于,包括:获取目标Jar包,对所述目标Jar包进行解析,获取所述目标Jar包对应的混淆class文件;对所述混淆class文件进行解析,获取目标混淆变量和方法混淆代码,所述目标混淆变量包括类路径、方法签名和方法体密文,所述方法混淆代码包含方法签名和空白方法体;对所述目标混淆变量的方法体密文进行解密处理,获取所述目标混淆变量对应的方法体明文;将所述目标混淆变量对应的方法体明文,替换与所述类路径和所述方法签名相对应的方法混淆代码的空白方法体,获取所述方法混淆代码还原的方法源代码;基于所有所述方法混淆代码还原的方法源代码,获取原始class文件,采用类加载器加载所述原始class文件。5.如权利要求4所述的java程序安全处理方法,其特征在于,所述对所述目标混淆变量的方法体密文进行解密处理,获取所述目标混淆变量对应的方法体明文,包括:对所述目标混淆变量进行解析,获取所述目标混淆变量对应的类路径、方法签名和方法体密文;获取所述目标Jar包对应的目标私钥,采用所述目标...

【专利技术属性】
技术研发人员:李欢
申请(专利权)人:平安国际智慧城市科技股份有限公司
类型:发明
国别省市:

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

1