各位大大,项目中需要HOOK了dladdr之类的系统函数,我需要根据调用dladdr的父函数及相关参数来决策hook中的程序逻辑。请问下,在hook dladdr的代码中,如何知道调用的父函数或者当前hook_dladdr的返回地址?
各种框架应该都支持获取返回地址吧(判断调用函数是否在特定范围里会用到)。比如frida直接在this里面放着
谢谢你的回复,我用 Cydia Substrate写tweak脚本,这里面怎么能得到调用信息喃。
现在用了一个比较笨的办法,用[NSThread callStackSymbols]获取线程的调用栈,然后再将调用栈的结果和父函数的地址比较。请各位大大指导下更好的办法。
C层好像也有获取堆栈的函数
__builtin_return_address
1 个赞