1.一种函数hook检测方法,其特征在于,包括:
当检测到目标终端安装有Xposed插件时,获取所述目标终端中的目标函数的flag值,所述flag值用于标记所述目标函数的状态;
根据所述flag值确定所述目标函数是否被hook;
当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;
根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并利用所述原始函数替换所述目标函数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述目标终端的当前设备信息,所述当前设备信息包括所述目标终端的型号、系统版本、风控场景信息中的一项或多项;
根据预置的设备信息和函数列表的对应关系,确定出所述当前设备信息对应的函数列表,其中,每一个函数列表包括对应的设备信息下被hook的频率大于预设频率阈值的函数和/或被hook的次数大于预设数目阈值的函数;
将所述当前设备信息对应的函数列表中的函数作为所述目标函数。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据统计的历史数据中不同设备信息下被hook的函数,建立函数检测模型,所述设备信息包括设备型号、系统版本、风控场景信息中的一项或多项;
获取所述目标终端的当前设备信息,并将所述当前设备信息输入所述函数检测模型,以得到所述目标函数。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述flag值确定所述目标函数是否被hook,包括:将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;
当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述flag值确定所述目标函数是否被hook,包括:按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;
当所述运算结果值为正整数时,确定所述目标函数被hook。
6.根据权利要求1所述的方法,其特征在于,在所述利用所述原始函数替换所述目标函数之后,所述方法还包括:根据所述原始函数获取所述原始函数对应的设备信息,并确定所述设备信息的优先级;
根据所述设备信息的优先级确定所述目标函数被hook的目标风险等级;
根据预设的不同风险等级与控制策略的对应关系,确定与所述目标风险等级对应的控制策略,并按照确定出的所述控制策略对所述目标终端的操作进行控制。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:统计预设时间范围内所述目标终端被hook的函数的数目,并根据所述数目确定所述目标终端的目标风险等级;
根据预设的不同风险等级与控制策略的对应关系,确定与所述目标风险等级对应的控制策略,并按照确定出的所述控制策略对所述目标终端的操作进行控制。
8.一种检测设备,其特征在于,包括用于执行如权利要求1-7任一项权利要求所述的方法的单元。
9.一种检测设备,其特征在于,包括处理器、用户接口、通信接口和存储器,所述处理器、用户接口、通信接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。