The embodiment of the invention discloses a function protection method and device, the method includes: to protect the body of a function to obtain the target class file; the use of encryption information encryption function generated with the corresponding function, and the encrypted information is stored in the set storage space; structure and the function body, the stub function, the function of the stub function is filled in the setting of a placeholder; decryption function, structure and function of the encryption, and the target class file to protect the body of a function is replaced by the decryption function. The embodiment of the invention can greatly reduce the possibility of the code being cracked, achieve the purpose of hiding the code, avoid the function code being decompile, and effectively improve the security of the function code.
【技术实现步骤摘要】
一种函数保护方法及装置
本专利技术实施例涉及信息安全
,尤其涉及一种函数保护方法及装置。
技术介绍
随着互联网的蓬勃发展,计算机编程语言(JAVA)以其可移植性、多线程性等特点提升了电子产品的智能化程度。但是由于JAVA字节码的抽象级别较高,因此容易被反编译为源代码,造成程序代码被破解的安全性问题。现有技术中,为了保护JAVA字节码的安全性,常使用三种解决方案:1、加密类文件,为了防止类(.class)文件被直接反编译,开发人员将关键的类文件进行加密,并且通过自定义的类加载机制(ClassLoader)进行解密之后装载到虚拟机中执行。但是,由于自定义的类加载机制本身没有被加密,破解者容易获取类文件。2、将关键代码转换为本地代码,将程序关键代码转换为本地代码是一种防止反编译的有效方法,但是是以牺牲JAVA的跨平台移植性为代价的,还会加重软件支持和维护的工作,增加了系统的复杂性。3、使用代码混淆技术,通过对JAVA字节码使用混淆技术,使代码逻辑产生改变,不易被读取。但是,对混淆技术依赖性较大,而且可以被反编译。
技术实现思路
本专利技术实施例提供一种函数保护方法及装 ...
【技术保护点】
一种函数加密方法,其特征在于,包括:获取目标类文件中待保护函数的函数体;使用加密函数生成与所述函数体对应的加密信息,并将所述加密信息存储于设定存储空间中;构造与所述函数体匹配的存根函数,其中,所述存根函数的函数体中填充有设定占位符;构造与所述加密函数匹配的解密函数,并将所述目标类文件中待保护函数的函数体替换为所述解密函数。
【技术特征摘要】
1.一种函数加密方法,其特征在于,包括:获取目标类文件中待保护函数的函数体;使用加密函数生成与所述函数体对应的加密信息,并将所述加密信息存储于设定存储空间中;构造与所述函数体匹配的存根函数,其中,所述存根函数的函数体中填充有设定占位符;构造与所述加密函数匹配的解密函数,并将所述目标类文件中待保护函数的函数体替换为所述解密函数。2.根据权利要求1所述的方法,其特征在于,所述存根函数包括下述至少一项特征:所述存根函数的函数体与所述待保护函数的函数体长度相等;所述存根函数的参数类型与所述待保护函数的参数类型相同;所述存根函数的返回值类型与所述待保护函数的返回值类型相同。3.根据权利要求1所述的方法,其特征在于,使用加密函数生成与所述函数体对应的加密信息,并将所述加密信息存储于设定存储空间中,包括:使用中间组件从加密锁中调用加密函数;使用所述加密函数对待保护函数的函数体进行加密,生成与所述函数体对应的加密信息;将所述加密信息存储于加密锁中;其中,所述加密锁包括与所述目标类文件进行通信的接口。4.根据权利要求1-3任一项所述的方法,其特征在于,获取目标类文件中待保护函数的函数体,包括:获取目标类文件中的待保护函数;使用解析工具解析所述目标类文件的文件格式,获取所述待保护函数的起始地址和终止地址;根据所述起始地址和所述终止地址,获取所述待保护函数的函数体。5.一种函数解密方法,其特征在于,包括:在检测到目标函数被运行时,在目标类文件中获取所述目标函数的函数体;如果识别出所述函数体中包括解密函数,则在设定存储空间中,获取与所述函数体对应的加密信息,并使用所述解密函数对所述加密信息进行解密,获取解密数据;获取与所述函数体匹配的存根函数,其中,所述存根函数的函数体中填充有设定占位符;将所述存根函数的函数体替换为所述解密数据后,运行所述存根函数;在保存所述存根函数的运行结果后,重新将所述存根函数的函数体替换为所述占位符。6.一种函数加密装置,其特征在于,包括:函数体获取模块,用于获取目标类文件中待保护函数的函数体;加密模块,用...
【专利技术属性】
技术研发人员:孙吉平,荣国枫,
申请(专利权)人:北京深思数盾科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。