[发明专利]一种防止反编译方法、装置、电子设备及存储介质有效
申请号: | 201811328424.5 | 申请日: | 2018-11-08 |
公开(公告)号: | CN111159661B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 杨斌 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/60 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王宁宁 |
地址: | 610000 四川省成都市高*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 反编译 方法 装置 电子设备 存储 介质 | ||
本发明涉及防止反编译方法、装置、电子设备及存储介质。该方法包括:对待保护软件产品的产品Class文件进行加密,将对应的第一解密算法和第一解密密钥存储于类加载器Class文件中;对类加载器Class文件进行加密,将对应的第二解密算法和第二解密密钥存储于第1个保护Java文件中,并编译成第1个保护Class文件;依次取i从1至N,对第i个保护Class文件进行加密,将对应的第i+2解密算法和第i+2解密密钥存储于第i+1个保护Java文件中,并编译成第i+1个保护Class文件。通过层层加密方式来增加破解成本,使得无法破解或破解的成本大于预期的效益,从而防止产品Class文件被反编译。
技术领域
本发明属于信息安全技术领域,具体涉及一种防止反编译方法、装置、电子设备及存储介质。
背景技术
根据Java虚拟机规范,由Java语言编译生成的Class文件,其采用一种类似C语言结构体的伪结构进行存储,所以非常容易通过逆向工程进行反编译。
现有技术中普遍采用代码混淆及代码加密方式来防止Class文件被反编译。但是,无论是采用代码混淆的方式,还是采用代码加密的方式,均存在一定的缺陷。例如,代码混淆的方式使得代码的可读性大大降低,未能从本质上解决问题,通过耐心阅读,仍然可以破解核心部件代码,并且代码混淆在较大概率上还可能造成程序逻辑错误,增加排查问题的难度。而采用代码加密的方式,当前主流的方法是通过JNI(Java Native Interface)技术将加密入口放入动态库中,由于动态库采用C或C++语言开发,因此破坏了Java语言的跨平台特性。
发明内容
鉴于此,本发明的目的在于提供一种防止反编译方法、装置、电子设备及存储介质,以有效地改善上述问题。
本发明的实施例是这样实现的:
第一方面,本发明实施例提供了一种防止反编译方法,包括:对待保护软件产品的产品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。本申请实施例中,通过钥匙与锁相分离的层层加密方式来增加破解成本,例如,对产品Class文件进行加密,将用于解密所述产品Class文件的第一解密算法和第一解密密钥存储于类加载器Class文件中;再对类加载器Class文件进行加密,将用于解密所述类加载器Class文件的第二解密算法和第二解密密钥存储于随机生成的第1个保护Java文件中,并编译成第1个保护Class文件;再对第1个保护Class文件进行加密,将用于解密所述第1个保护Class文件的第三解密算法和第三解密密钥存储于随机生成的第2个保护Java文件中,并编译成第2个保护Class文件……使得无法破解或破解的成本大于预期的效益,从而防止产品Class文件被反编译。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811328424.5/2.html,转载请声明来源钻瓜专利网。