The embodiment of the invention discloses a signal processing method, a system and a terminal device of an application program, and is applied to the field of information processing technology. In the method of this embodiment, the hook function module when the application module call system in the terminal equipment of the abnormal, the system module informs the signal processing module to obtain the relevant information of the abnormal application module and send data analysis system to get blacklist. Whether this application module can control the terminal equipment through the blacklist call hook function, if the call is a module in the terminal equipment of a certain type of hook function to some abnormal, can be through the terminal blacklist of this type of control is the preparation of the application module call the hook function, so as to avoid the application module is abnormal. Therefore, the method of the embodiment can be compatible with a plurality of terminal equipment and an application module, and fundamentally ensures the stability of the calling function of the application module.
【技术实现步骤摘要】
一种应用程序的信号处理方法、系统及终端设备
本专利技术涉及信息处理
,特别涉及一种应用程序的信号处理方法、系统及终端设备。
技术介绍
现在有些终端设备的应用模块(即应用程序)在运行的过程中,可以调用终端设备的系统模块的某些函数以实现某些特殊功能,这些函数即为钩子(hook)函数,同时,可以通过应用模块调用钩子函数的过程,监控应用模块相关的性能。比如,可以通过应用模块调用终端设备的系统模块的输入输出(input/output,IO)函数,监控应用模块的IO性能。为了实现应用模块调用hook函数,一般可以采用将hook函数的地址信息添加到应用模块的全局偏移量表(GlobalOffsetTable,GOT)中等方式来实现。现有的通过修改GOT表的方式可以避免和终端设备的硬件平台相关,具有一定的稳定性,但是这种方式应用的场景有限,不适用某些hook函数的调用,比如,通过应用模块调用连接(connect)函数,只能监控应用模块通过java层访问网络的请求,而不能监控应用模块通过java本地调用(JavaNativeInterface,JNI)方式调用底层的套接字(socket)访问网络的请求。这种情况下,就需要采用InlineHook的方式来实现,具体地,应用模块需要修改hook函数的指令头以跳转到hook函数,而由于各个厂商的终端设备的繁杂不一且硬件处理方式不一样,采用InlineHook的方式很难达到很高的稳定性。这样,如何兼容多种终端设备,保证终端设备采用InlineHook的方式调用hook函数这个过程的稳定性,成为一个比较重要的问题。
技术实现思路
本专 ...
【技术保护点】
一种应用程序的信号处理方法,其特征在于,应用于包括应用模块,信号处理模块和系统模块的终端设备中,所述方法包括:当所述应用模块在调用所述系统模块的钩子函数异常时,向所述系统模块发出第一信号;如果所述第一信号属于预置的信号集,所述系统模块通知所述信号处理模块获取所述应用模块发生异常的相关信息;所述信号处理模块将所述相关信息发送给数据分析系统,以便所述数据分析系统根据所述相关信息确定黑名单,所述黑名单包括在终端设备中应用模块不调用钩子函数的信息。
【技术特征摘要】
1.一种应用程序的信号处理方法,其特征在于,应用于包括应用模块,信号处理模块和系统模块的终端设备中,所述方法包括:当所述应用模块在调用所述系统模块的钩子函数异常时,向所述系统模块发出第一信号;如果所述第一信号属于预置的信号集,所述系统模块通知所述信号处理模块获取所述应用模块发生异常的相关信息;所述信号处理模块将所述相关信息发送给数据分析系统,以便所述数据分析系统根据所述相关信息确定黑名单,所述黑名单包括在终端设备中应用模块不调用钩子函数的信息。2.如权利要求1所述的方法,其特征在于,所述方法还包括:在所述应用模块调用钩子函数之前,所述应用模块储存所述应用模块运行的上下文;所述信号处理模块将所述相关信息发送给数据分析系统之后,所述方法还包括:所述应用模块运行所述储存的上下文。3.如权利要求2所述的方法,其特征在于,所述应用模块储存所述应用模块运行的上下文,具体包括:所述应用模块调用信号固定跳转Sigsetjmp函数,将所述应用模块运行的上下文储存到跳转缓存中;所述信号处理模块将所述相关信息发送给数据分析系统之后,所述应用模块运行所述储存的上下文,具体包括:所述信号处理模块在将所述相关信息发送给数据分析系统后,调用信号长跳转Siglongjmp函数以跳转到所述应用模块,所述应用模块运行所述跳转缓存中储存的上下文。4.如权利要求1所述的方法,其特征在于,所述应用模块在调用钩子函数之前,所述方法还包括:所述应用模块获取所述数据分析系统确定的黑名单,所述黑名单中包括多个信息组,其中,每个信息组包括:应用模块的名称和版本信息,终端设备的型号,及钩子函数的名称;所述应用模块确定当前的应用模块,终端设备及钩子函数的信息是否命中所述黑名单,如果未命中,所述应用模块调用所述系统模块的钩子函数;如果命中,所述应用模块执行非调用所述钩子函数的操作。5.如权利要求4所述的方法,其特征在于,所述方法还包括:所述应用模块在启动时,修改所述钩子函数的指令头;则所述应用模块执行非调用所述钩子函数的操作,具体包括:还原所述钩子函数的指令头。6.如权利要求1至5任一项所述的方法,其特征在于,所述应用模块向所述系统模块发出第一信号之前,所述方法还包括:所述应用模块在启动时,向所述系统模块注册所述预置的信号集,所述信号集中包括的信号为所述应用模块在调用所述系统模块的钩子函数异常时发出的信号。7.如权利要求1至5任一项所述的方法,其特征在于,所述应用模块向所述系统模块发出第一信号之前,所述方法还包括:所述应用模块在启动时,向所述系统模块注册所述信号处理模块运行的地址信息;所述系统模块通知所述信号处理模块获取所述应用模块发生异常的相关信息,具体包括:所述系统模块根据所述信号处理模块运行的地址信息,通知所述信号处理模块获取所述应用模块发生异常的相关信息。8.一种应用程序的信号处理方法,其特征在于,所述方法包括:接收多个终端设备发送的应用模块调用系统模块的钩子函数异常时的相关信息,所述相关信息包括:相应终端设备所包括的应用模块...
【专利技术属性】
技术研发人员:黄天琳,谭力,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。