1.一种程序核心代码的保护方法,其特征在于,包括:通过状态机标记任一加载模块的加载状态,得到所述加载模块的状态机数据矩阵;
通过创建空线程事件,按照主程序运行的模块加载顺序将所述状态机数据矩阵填充到所述加载模块中,并在核心模块中存储任一加载模块的状态机数据矩阵;
将所述加载模块中的状态机数据矩阵变换为矩阵结果数据,并将所述矩阵结果数据转换为一维数组结果数据;
将所述一维数组结果数据作为秘钥数据和/或随机算法的种子数据嵌入程序核心代码,以进行数据验证或加密,完成程序核心代码的保护;
所述加载模块的状态机数据矩阵的创建,具体包括:获得主程序运行的任一加载模块;
并按照所述加载模块的加载顺序建立加载顺序列表;
建立状态机,并采用二维数组矩阵表示状态机的数据;
其中,所述二维数组矩阵为N行N列的二维数组,N为加载模块的个数;
将所述状态机数据矩阵填充到所述加载模块中,具体包括:将所述二维数组矩阵初始化为零矩阵;
在任一加载模块中增加函数导出接口,以将状态机数据矩阵传递给其他加载模块;
增加一个空线程创建事件;
按照所述加载顺序列表的加载顺序,填充所述二维数组矩阵的数据;
并通过所述函数导出接口将所述二维数组矩阵的数据设置到核心模块中;
所述增加一个空线程创建事件,具体包括:主程序遍历进程中的任一线程,并暂停所述线程;
通过修改模块的dllmain函数,创建一个空线程,所述空线程为空的函数逻辑,以使加载模块之间完成状态机数据的赋值和形成传递顺序;其中,所述传递顺序为模块加载顺序;
执行所述空线程,遍历当前的加载模块,获取所述加载模块的句柄,通过调用系统函数对每个加载模块禁用线程创建事件;
主程序遍历线程并恢复线程的执行;
所述矩阵结果数据的获得,具体包括:
在核心模块获得每个加载模块的状态机数据矩阵;
按照加载顺序对所述加载模块的状态机数据矩阵排序,得到顺序排列的N位加载模块的状态机数据矩阵;
将第N位加载模块的状态机数据矩阵与第N‑1个乘积数据相乘得到第N个乘积数据;
将N个乘积数据相乘得到乘积矩阵作为矩阵结果数据;
其中,N为加载模块个数,第一个乘积数据为第一位加载模块的状态机数据矩阵;
将所述矩阵结果数据转换成一维数组结果数据,具体包括;
获得所述乘积矩阵的每一行数据;
并按照行顺序拼接排列,获得字符串数据;
将所述字符串数据复杂化转换成一维数组结果数据。
2.根据权利要求1所述的程序核心代码的保护方法,其特征在于,所述字符串数据复杂化通过哈希算法实现。
3.一种电子设备,包括应用处理器和存储器,其特征在于,所述处理器用于执行所述存储器中存储的计算机管理程序时实现如权利要求1‑2中任一项所述的程序核心代码的保护方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于,所述计算机管理类程序被处理器执行时实现如权利要求1‑2中任意一项所述的程序核心代码的保护方法的步骤。