fishHook简单使用

    fishHook是Facebook提供的一个动态修改连接Mach-O文件的工具。利用Mach-O文件的加载原理,通过修改懒加载和非懒加载两个表(通过MachOView查看Mach-O文件)的指针达到C函数HOOK的目的。 fishHook地址:https://github.com/facebook/fishhook

    

fishHook的2个方法

     rebind_symbols 函数和 rebind_symbols_image 函数是用来 HOOK 函数的两个方法,只不过参数不同而已,后者多了一个mach-O的header和slide偏移量,开发中经常使用第一个方法。

    回到第一个方法,struct rebinding rebindings[]:需要传递一个rebinding结构体类型的数组,第二个参数是这个数组的个数。

    我们再来看看rebinding结构体的定义

rebinding结构体

看完方法的介绍,我们再来实际运用一下

使用facehook去Hook一个懒加载或非懒加载表中的函数需要三个步骤,举例我们要hook系统的NSLog函数

1.创建一个指针保存原始函数的地址

2.创建一个新函数,用来hook原始函数

3.使用fishhook进行交换,需要一个rebinding的数组和数组的长度 


之后点击屏幕,在touchesBegan:withEvent: 打印"点击屏幕",控制台的输出

你可能感兴趣的:(fishHook简单使用)