【技术实现步骤摘要】
一种防止反编译方法、装置、电子设备及存储介质
本专利技术属于信息安全
,具体涉及一种防止反编译方法、装置、电子设备及存储介质。
技术介绍
根据Java虚拟机规范,由Java语言编译生成的Class文件,其采用一种类似C语言结构体的伪结构进行存储,所以非常容易通过逆向工程进行反编译。现有技术中普遍采用代码混淆及代码加密方式来防止Class文件被反编译。但是,无论是采用代码混淆的方式,还是采用代码加密的方式,均存在一定的缺陷。例如,代码混淆的方式使得代码的可读性大大降低,未能从本质上解决问题,通过耐心阅读,仍然可以破解核心部件代码,并且代码混淆在较大概率上还可能造成程序逻辑错误,增加排查问题的难度。而采用代码加密的方式,当前主流的方法是通过JNI(JavaNativeInterface)技术将加密入口放入动态库中,由于动态库采用C或C++语言开发,因此破坏了Java语言的跨平台特性。
技术实现思路
鉴于此,本专利技术的目的在于提供一种防止反编译方法、装置、电子设备及存储介质,以有效地改善 ...
【技术保护点】
1.一种防止反编译方法,其特征在于,包括:/n对待保护软件产品的产品Class文件进行加密,将用于解密所述产品Class文件的第一解密算法和第一解密密钥存储于类加载器Class文件中;/n对所述类加载器Class文件进行加密,将用于解密所述类加载器Class文件的第二解密算法和第二解密密钥存储于随机生成的第1个保护Java文件中,并编译成第1个保护Class文件;/n依次取i从1至N,对第i个保护Class文件进行加密,将用于解密所述第i个保护Class文件的第i+2解密算法和第i+2解密密钥存储于随机生成的第i+1个保护Java文件中,并编译成第i+1个保护Class文件,N大于等于1。/n
【技术特征摘要】 【专利技术属性】
1.一种防止反编译方法,其特征在于,包括:
对待保护软件产品的产品Class文件进行加密,将用于解密所述产品Class文件的第一解密算法和第一解密密钥存储于类加载器Class文件中;
对所述类加载器Class文件进行加密,将用于解密所述类加载器Class文件的第二解密算法和第二解密密钥存储于随机生成的第1个保护Java文件中,并编译成第1个保护Class文件;
依次取i从1至N,对第i个保护Class文件进行加密,将用于解密所述第i个保护Class文件的第i+2解密算法和第i+2解密密钥存储于随机生成的第i+1个保护Java文件中,并编译成第i+1个保护Class文件,N大于等于1。
2.根据权利要求1所述的方法,其特征在于,所述将用于解密所述第i个保护Class文件的第i+2解密算法和第i+2解密密钥存储于随机生成的第i+1个保护Java文件中,包括:
从预设代码模板池中随机选取一代码模板生成第i+1个保护Java文件;
将用于解密所述第i个保护Class文件的第i+2解密算法和第i+2解密密钥存储于所述第i+1个保护Java文件中。
3.根据权利要求1所述的方法,其特征在于,所述对待保护软件产品的产品Class文件进行加密,包括:
基于从预设加密算法池中随机选取的一加密算法和随机生成的一加密密钥对待保护软件产品的产品Class文件进行加密;或者基于从预设加密算法池中随机选取的一加密算法和预设加密密钥池中随机选取的一加密密钥对待保护软件产品的产品Class文件进行加密,其中,所述预设加密算法池包含有多个不同的加密算法,所述预设加密密钥池包含有多个不同的加密密钥。
4.根据权利要求1所述的方法,其特征在于,所述对所述类加载器Class文件进行加密,包括:
基于从预设加密算法池中随机选取的一加密算法和随机生成的一加密密钥对所述类加载器Class文件进行加密;或者基于从预设加密算法池中随机选取的一加密算法和预设加密密钥池中随机选取的一加密密钥对所述类加载器Class文件进行加密,其中,所述预设加密算法池包含有多个不同的加密算法,所述预设加密密钥池包含有多个不同的加密密钥。
技术研发人员:杨斌,
申请(专利权)人:迈普通信技术股份有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。