经常在找问题时,发现有的大佬给的答案里面说下个钩子啥的,一脸懵逼,啥是钩子? 钩子来源于Hook,在windows系统中,所有的都是消息,按了一下键盘,就是一个消息,Hook的意思就是勾住,在消息过去之前先把消息勾住,不让其执行,然后自己优先处理。也就是这个技术提供了一个入口,能够针对不同的消息或者api在执行前,先执行你的操作。“你的操作”就是钩子函数。
所以如果听到说“先hook住,再处理”,也就是在执行某某操作之前,优先处理一下,再决定后面的执行走向。 有一些技术时利用hook的,比如一些程序经常会校验自身签名,不允许你改动程序安装包,这个时候如果Hook住校验的函数,假装处理为校验通过(其实根本没通过,因为你能优先处理并返回,所以执行不到原始的代码了),这种情况下酒欺骗了原始程序,从而达到目的。