什么是hook
HOOK,中文译为“挂钩”或“钩子”。在iOS逆向中是指改变程序运行流程的一种技术。 例如,一个正常的程序运行流程是A->B->C,通过hook技术可以让程序的执行变成A->我们自己的代码->B->C。在这个过程中,我们的代码可以获取到A传递B的数据,对其进行修改或利用再传递给B,而A,B是不会感知到这个过程的。所以,通过hook可以让别人的程序执行自己所写的代码。在逆向中经常使用这种技术。在学习过程中,我们重点要了解其原理,这样能够对恶意代码进行有效的防护。在iOS系统中有以下三种方式可以实现hook,这篇文章主要讲究fishhook的使用及其原理。