6Tweak - 批量hook函数添加log - logify.pl

 

希望追踪用户点击某个按钮之后的调用逻辑

如:微信点击红包之后,进行抢红包,想知道点击之后和哪个方法有关?

小例子

希望找到微信点击红包之后,进行了哪些操作

猜测应该是调用了当前VC的某个方法,实现了抢红包操作的

首先找到所在VC

Class-dump出来头文件

找到我们找的头文件BaseMsgControllerViewController

但是方法很多,我们怎么知道需要调用的是哪个方法呢?

找到我们需要的相关方法

方案一:Hook所有方法

把它所有的方法都hook一遍,打印一下,就可以追踪每一个方法了。观察分析控制台的log,就知道了。

问题:麻烦!:如果需要打印参数更麻烦: 如果函数有返回值,还希望打印下返回值...

好处:可以覆盖所有方法

方案二:%log

问题:只能一个一个函数hook

方案三:logify.pl - 将一个头文件快速转换成已经包含打印信息的xm文件

用法

logify.pl 头文件 > BaseVC.xm


所有方法都自动hook并log了

配置下Makefile文件,把生成的logify文件编译一下

编译报错,因为头文件例的不少类没包含进来,它不认识

解决:

声明一下就好了

之后还会报一些错,它报不认识的能删的都删了,协议什么的不需要的也都干掉,就好。

通过log寻找对应方法

在手机上进行操作,打印出来不少东东..可以通过BaseMsgContentViewController这个控制器作为关键字搜索关键方法调用信息

按着方法去看..