请问下怎样hook一个dylib中的c++函数

需求: 最近在做内存分析,由于工程是swift写的,所以想hook libswiftcore.dylib中的swift_retain/release函数来做一些事情。无奈试了各种方法也搞不定,fishhook/hookzz不知道是否有好的解决方案
操作步骤: fishhook似乎不支持c++的hook,由于无法获取swift_retain这个符号,所以hookzz也不能替换这个方法

顶一下!!!

有没有哪位大神清楚呀。。

跟c c++符号没关系啊

首先得越狱, 其次 swift_retain 是导出的, 不存在找不到

另外为什么不考虑做编译时的内存分析呢

嗯,明白,越狱情况下Hook是没问题

张总说的编译时的内存分析,能提供一个思路么

Swift emit到LLVM Assembly,把每个模块llvm-link到一起,然后自己写Analysis Pass搜索swift_retain的调用方

大神就是厉害

研究研究,看能不能搞

不过静态分析似乎不太靠谱啊,,毕竟retain_release能配对,你也不能保证他在运行时能够调用呀

???/

意思就是调用了retain的对象,在某处能保证有调用release,但是在运行时无法保证release调用了。不知道这样描述能明白不。。

????????
你是说release的控制流可能没有走到?