1.一种保护函数调用的方法,其特征在于,所述方法包括:
检测所述函数的调用者信息;其中,所述检测的步骤包括:建立第一全局变量及第二全局变量;在调用所述函数之前,利用哈希算法计算所述第一全局变量的第一哈希值;在调用所述函数时,利用所述哈希算法计算所述第二全局变量的第二哈希值;
基于所述调用者信息判断所述调用者是否为正常用户,若不是正常用户,则断开此次调用,其中所述判断的步骤包括:判断所述第一哈希值与所述第二哈希值是否一致,若不一致,则确定所述调用者不是正常用户;
所述检测所述函数的调用者信息,判断所述调用者是否为正常用户,还包括:获取所述函数的调用链信息,所述函数的调用链信息是指当前的函数是从上层函数调用过来的;判断所述调用链信息与预设的调用链信息是否一致;若所述调用链信息与所述预设的调用链信息不一致,则确定所述调用者不是正常用户;其中,所述获取所述函数的调用链信息,包括:获取用于存储所述调用链信息内存地址的参数buffer;利用转化函数将所述内存地址转化为函数名称信息;基于所述函数名称信息获取所述函数调用链的函数名称信息;基于所述函数调用链的函数名称信息获取所述函数的调用链信息。
2.如权利要求1所述的方法,其特征在于,所述建立第一全局变量及第二全局变量之前,所述方法还包括:构造数据结构;
将所述数据结构设置为所述函数的调用参数类型。
3.如权利要求1所述的方法,其特征在于,所述第一全局变量的初始值与所述第二全局变量的初始值相同。
4.一种保护函数调用的装置,其特征在于,所述装置包括:
检测单元,用于检测所述函数的调用者信息;所述检测单元还用于:
建立第一全局变量及第二全局变量;在调用所述函数之前,利用哈希算法计算所述第一全局变量的第一哈希值;在调用所述函数时,利用所述哈希算法计算所述第二全局变量的第二哈希值;
判断单元,用于基于所述调用者信息判断所述调用者是否为正常用户,若不是正常用户,则断开此次调用;所述判断单元具体用于:判断所述第一哈希值与所述第二哈希值是否一致,若不一致,则确定所述调用者不是正常用户;
所述检测单元还用于:获取所述函数的调用链信息;判断所述调用链信息与预设的调用链信息是否一致;所述判断单元还用于:若所述调用链信息与所述预设的调用链信息不一致,则确定所述调用者不是正常用户;
其中,所述检测单元还用于:获取用于存储所述调用链信息内存地址的参数buffer;利用转化函数将所述内存地址转化为函数名称信息;基于所述函数名称信息获取所述函数调用链的函数名称信息;基于所述函数调用链的函数名称信息获取所述函数的调用链信息。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
构造单元,用于构造数据结构;
设置单元,用于将所述数据结构设置为所述函数的调用参数类型。