【技术实现步骤摘要】
终端应用的挂钩方法及装置
本专利技术涉及信息处理
,特别是涉及一种终端应用的挂钩方法及装置。
技术介绍
挂钩(hook)技术是Windows中提供的一种用以替换DOS下“中断”的系统机制,挂钩函数是Windows消息处理机制的一部分,通过设置“挂钩函数”,应用程序可以在系统对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。挂钩函数的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。目前,通常只能实现8个字节指令挂钩函数,例如基于Xposed框架下实现8个字节指令挂钩函数。然而,通过上述方式挂钩函数,在许多情况环境下,挂钩函数会失败,导致挂钩函数的成功率较低。因此,提出一种新的挂钩函数方式是目前亟待解决的技术问题。
技术实现思路
有鉴于此,本专利技术提供一种挂钩函数方法及装置,主要目的在于提出一种新的挂钩函数方式,能够保证在机器码指令下成功挂钩函数,从而能够提升挂钩函数的成功率。依据本专利技术一方面,提供了一种终端应用的挂钩方法,包括:在移动终端的应用调用目标函数时,识别从所述目标函数跳转到新函数的短跳转指令,所述新函数为待所述目标函数挂钩的函 ...
【技术保护点】
一种终端应用的挂钩方法,其特征在于,包括:在移动终端的应用调用目标函数时,识别从所述目标函数跳转到新函数的短跳转指令,所述新函数为待所述目标函数挂钩的函数;若所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,以跳转到根据所述短跳转指令申请的内存地址,并执行所述新函数;在执行完所述新函数后,若确定需要继续调用所述目标函数,则翻译并执行所述机器码指令;在执行完所述机器码指令后,写入所述短跳转指令,以实现跳回所述目标函数。
【技术特征摘要】
1.一种终端应用的挂钩方法,其特征在于,包括:在移动终端的应用调用目标函数时,识别从所述目标函数跳转到新函数的短跳转指令,所述新函数为待所述目标函数挂钩的函数;若所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,以跳转到根据所述短跳转指令申请的内存地址,并执行所述新函数;在执行完所述新函数后,若确定需要继续调用所述目标函数,则翻译并执行所述机器码指令;在执行完所述机器码指令后,写入所述短跳转指令,以实现跳回所述目标函数。2.根据权利要求1所述的方法,其特征在于,所述识别从所述目标函数跳转到新函数的短跳转指令,具体包括:若识别所述短跳转指令为基于32位操作系统的b指令,则确定所述短跳转指令为基于32位操作系统的arm短跳转指令;所述若所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,具体包括:若所述arm短跳转指令所跳转的内存范围小于32M的内存范围,则将所述目标函数的机器码指令替换为所述arm短跳转指令。3.根据权利要求1所述的方法,其特征在于,所述识别从所述目标函数跳转到新函数的短跳转指令,具体包括:若识别所述短跳转指令为基于32位操作系统的b.W指令,则确定所述短跳转指令为基于32位操作系统的thumb短跳转指令;所述若所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,具体包括:若所述thumb短跳转指令所跳转的内存范围小于16M的内存范围,则将所述目标函数的机器码指令替换为所述thumb短跳转指令。4.根据权利要求1所述的方法,其特征在于,所述识别从所述目标函数跳转到新函数的短跳转指令,具体包括:若识别所述短跳转指令为基于64位操作系统的b指令,则确定所述短跳转指令为基于64位操作系统的短跳转指令;所述若所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,具体包括:若所述基于64位操作系统的短跳转指令所跳转的内存范围小于128M的内存范围,则将所述目标函数的机器码指令替换为所述基于64位操作系统的短跳转指令。5.一种终端应用的挂钩装置,其特征在于,包括:识别单元,用于在移动终端的应用调用目标函数时,识别从所述目标函数跳转到新函数的短跳转指令,所述新函数为待所述目标函数挂钩的函数;替换单元,用于若所述识别单元识别的所述短跳转指令所跳转的内存范围符合预设内存范围,则将所述目标函数的机器码指令替换为所述短跳转指令,以跳转到根据所述短跳转指令申请的内存地址,并执行所述新函数;翻译单元,用于...
【专利技术属性】
技术研发人员:易新,任太胜,刘洪凯,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。