Fishhook
众所周知,Objective-C的首选hook方案为Method Swizzle,于是大家纷纷表示核心内容应该用C写。
接下来进阶说说iOS下C函数的hook方案,先介绍第一种方案————fishhook .
什么是fishhook
fishhook是facebook提供的一个动态修改链接Mach-O符号表的开源工具。
什么是Mach-O
Mach-O为Mach Object文件格式的缩写,也是用于iOS可执行文件,目标代码,动态库,内核转储的文件格式。Mach-O有自己的dylib规范。
fishhook的原理
详见官方的How it works,这里我作个简要说明。dyld链接2种符号,lazy和non-lazy,fishhook可以重新链接/替换本地符号。