监控内存的方法之一就是hook malloc,监控其内存分配,ios允许使用c++语法,但是fishhook无法hook new操作符,从而无法监控new的内存分配。接下来介绍一种可以监控new操作符的内存分配方法。
1、查找new操作符的汇编实现
首先在demo上打一个断点,如下图所示

运行代码,会发现断点停留在如下位置

可以发现new操作符的地址是 0x1047fa70c
然后我们查看app在内存中的偏移地址,使用image list命令

可以看到app在内存中的偏移值为0x104658000
new操作符在MachO中的偏移值 = new操作符真实的内存地址 - app在内存中的偏移值
0x1047fa70c - 0x104658000 = 0x1A270C
0x1A270C就是new操作符在MachO中的偏移值。
通过MachOView查看MachO中的Indirect Symbol Table,找到value为0x1A270C的符号,发现符号是__Znwm

最低0.47元/天 解锁文章
2945

被折叠的 条评论
为什么被折叠?



