1.一种可执行代码的保护方法,其特征在于,所述方法包括步骤:
读取第一动态链接库文件中的核心函数的信息;
加密所述核心函数,生成加密核心函数;
保护加密所述核心函数的密钥;
从所述第一动态链接库文件中提取所述加密核心函数;
将所述加密核心函数写入所述第一动态链接库文件的自定义节区中。
2.根据权利要求1所述的可执行代码的保护方法,其特征在于,在读取所述第一动态链接库文件中的核心函数信息之前,所述方法还包括:
构造所述自定义节区的新节区头结构;
在所述第一动态链接库文件中添加所述自定义节区。
3.根据权利要求2所述的可执行代码的保护方法,其特征在于,在从所述第一动态链接库文件中提取所述加密核心函数之后,所述方法还包括:
将提取后的第一动态链接库文件中的核心函数字段置零。
4.根据权利要求3所述的可执行代码的保护方法,其特征在于,保护加密所述核心函数的密钥,包括:
通过白盒算法和所述密钥生成两个查找表保护所述密钥。
5.根据权利要求4所述的可执行代码的保护方法,其特征在于,所述方法还包括:
在第二动态链接库文件中设置解密函数,以解密加密的第一动态链接库文件。
6.一种可执行代码的保护方法,其特征在于,所述方法包括步骤:
加载第一动态链接库文件至内存;
解析所述第一动态链接库文件中的自定义节区,得到所述自定义节区中的加密核心函数;
解密所述加密核心函数;
还原解密后的核心函数至内存。
7.根据权利要求6所述的可执行代码的保护方法,其特征在于,所述方法还包括:
加载第二动态链接库文件至所述内存,所述第二动态链接库文件包括解密函数;
相应的,解密所述加密核心函数,包括:
通过白盒算法获取两个查找表;
在所述解密函数中,通过所述两个查找表解密所述加密核心函数。
8.根据权利要求7所述的可执行代码的保护方法,其特征在于,加载第一动态链接库文件至内存之后,所述方法还包括:
获取所述第一动态链接库文件在所述内存中的起始位置、以及每个核心函数在所述内存中的特定位置;
相应的,还原解密后的核心函数至内存,包括:
按照所述核心函数的名称还原所述解密后的核心函数至所述内存起始位置的特定位置。
9.一种设备,其特征在于,所述设备包括处理器、以及存储器;
所述处理器用于执行存储器中存储的虚拟机字节码文件的保护程序,以实现权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-8任一项所述的方法。