HOOK技术是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创迅悔枯建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在江何医没有到达目的窗口前,钩子程序就先捕胜且面苗既教获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消极最及月责息,还可以强制结束消错着的正殖流也击本宜文息的传递。
Hook原理
Hook技术无论对安全软件还是恶意软件都是十分关键的效脱广识左超护味便电一项技术,其本质就是劫持函数调前樱用。
但是由于处于L亲什推虽inux用户态,每个进程都有自己独立的进程空间,所以必须先注入到所要Hook的进程空间身日格飞袁多,修改其内存中的进亩洞程代码,替换其过程表的符号地址。在Android中一般是通过ptrace函数附加进程,然后向远程进程注入so库,从而达到监控以及远程进程关键函数挂钩。