6Tweak - 批量hook函数添加log - logify.pl
Fri, May 11, 2018
希望追踪用户点击某个按钮之后的调用逻辑
如:微信点击红包之后,进行抢红包,想知道点击之后和哪个方法有关?
小例子
希望找到微信点击红包之后,进行了哪些操作
猜测应该是调用了当前VC的某个方法,实现了抢红包操作的
首先找到所在VC
Class-dump出来头文件
找到我们找的头文件BaseMsgControllerViewController
但是方法很多,我们怎么知道需要调用的是哪个方法呢?
找到我们需要的相关方法
方案一:Hook所有方法
把它所有的方法都hook一遍,打印一下,就可以追踪每一个方法了。观察分析控制台的log,就知道了。
问题:麻烦!:如果需要打印参数更麻烦: 如果函数有返回值,还希望打印下返回值...
好处:可以覆盖所有方法
方案二:%log
问题:只能一个一个函数hook
方案三:logify.pl - 将一个头文件快速转换成已经包含打印信息的xm文件
用法
logify.pl 头文件 > BaseVC.xm |
所有方法都自动hook并log了
配置下Makefile文件,把生成的logify文件编译一下
编译报错,因为头文件例的不少类没包含进来,它不认识
解决:
声明一下就好了
之后还会报一些错,它报不认识的能删的都删了,协议什么的不需要的也都干掉,就好。
通过log寻找对应方法
在手机上进行操作,打印出来不少东东..可以通过BaseMsgContentViewController这个控制器作为关键字搜索关键方法调用信息
按着方法去看..