1.一种核心函数的检测方法,其特征在于,所述方法包括:当客户端连接上服务器时,所述客户端接收服务器下发的配置了一个或者多个核心函数的配置文件;所述配置文件包含各核心函数的类名和函数名,配置文件的模块信息不下发给客户端;
所述客户端解析所述配置文件中各核心函数的类名和函数名,获得对应的类和函数信息;
所述客户端获得所述配置文件在客户端中运行时所述各核心函数的内存地址对应的模块信息,包括:通过调用系统API函数class_getMethodImplementation来获得所述各核心函数的类对应的函数内存地址;通过调用系统函数dladdr从所述各核心函数的类对应的函数内存地址中获取所对应的模块信息;
所述客户端将所述各核心函数的类、函数信息、模块信息一并加密为待验证文件发送给服务器,使得所述服务器利用自身存储的所述配置文件对所述待验证文件进行验证,通过对比服务器存储的配置文件,将客户端获取的模块信息与服务器存储的模块信息进行对比,若验证一致则表示对应的核心函数未遭受攻击,若验证不一致则表示对应的核心函数遭受攻击。
2.如权利要求1所述的一种核心函数的检测方法,其特征在于,所述解析所述配置文件中各核心函数的类名和函数名,获得对应的类和函数信息,包括:通过调用系统API函数obj_getClass来获取到所述各核心函数的类名下对应的具体的类。
3.如权利要求1所述的一种核心函数的检测方法,其特征在于,所述解析所述配置文件中各核心函数的类名和函数名,获得对应的类和函数信息,包括:通过调用系统API函数sel_registerName来获取所述各核心函数的函数名下对应的函数信息。
4.一种客户端,其特征在于,包括:接收模块,用于当客户端连接上服务器时,接收服务器下发的配置了一个或者多个核心函数的配置文件;所述配置文件包含各核心函数的类名和函数名,配置文件的模块信息不下发给客户端;
解析模块,用于解析所述配置文件中各核心函数的类名和函数名,获得对应的类和函数信息;
获得模块,用于获得所述配置文件在客户端中运行时所述各核心函数的内存地址对应的模块信息,包括:通过调用系统API函数class_getMethodImplementation来获得所述各核心函数的类对应的函数内存地址;通过调用系统函数dladdr从所述各核心函数的类对应的函数内存地址中获取所对应的模块信息;
发送模块,用于将所述各核心函数的类、函数信息、模块信息一并加密为待验证文件发送给服务器,使得所述服务器利用自身存储的所述配置文件对所述待验证文件进行验证,通过对比服务器存储的配置文件,将客户端获取的模块信息与服务器存储的模块信息进行对比,若验证一致则表示对应的核心函数未遭受攻击,若验证不一致则表示对应的核心函数遭受攻击。
5.如权利要求4所述的客户端,其特征在于,所述解析模块,具体用于通过调用系统API函数obj_getClass来获取到所述各核心函数的类名下对应的具体的类。
6.如权利要求4所述的客户端,其特征在于,所述解析模块,具体用于通过调用系统API函数sel_registerName来获取所述各核心函数的函数名下对应的函数信息。
7.一种核心函数的检测系统,其特征在于,包括:服务器,用于当客户端连接上服务器时,下发配置了一个或者多个核心函数的配置文件;所述配置文件包含各核心函数的类名和函数名,配置文件的模块信息不下发给客户端;
客户端,用于接收所述服务器下发的所述配置文件,所述客户端,用于解析所述配置文件中各核心函数的类名和函数名,获得对应的类和函数信息;
所述客户端,用于获得所述配置文件在客户端中运行时所述各核心函数的内存地址对应的模块信息,包括:通过调用系统API函数class_getMethodImplementation来获得所述各核心函数的类对应的函数内存地址;通过调用系统函数dladdr从所述各核心函数的类对应的函数内存地址中获取所对应的模块信息;
所述客户端,用于将所述各核心函数的类、函数信息、模块信息一并加密为待验证文件发送给服务器;
所述服务器,用于利用自身存储的所述配置文件对所述待验证文件进行验证,通过对比服务器存储的配置文件,将客户端获取的模块信息与服务器存储的模块信息进行对比,若验证一致则表示对应的核心函数未遭受攻击,若验证不一致则表示对应的核心函数遭受攻击。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1‑3任一项所述方法的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1‑3任一项所述方法的步骤。