美文网首页
fishhook 支持ARC的18个函数初步探究

fishhook 支持ARC的18个函数初步探究

作者: 传说中的汽水枪 | 来源:发表于2019-03-02 15:34 被阅读0次

    Objective-C Automatic Reference Counting (ARC)最后一个章节描述了runtime支持ARC的18个函数。我想跟踪这些函数的时候,发现有的是可以被fishhook有的是无法被fishhook的,因此现在把这18个函数列举出来并依次尝试是否可以fishhook。
    测试代码:

    // .m 文件
    static id (*origin_objc_autorelease)(id);
    id my_objc_autorelease(id value) {
        printf("my_objc_autorelease\n");
        return origin_objc_autorelease(value);
    }
    
    // 一个方法
    + (void)hook {
        struct rebinding binds[1];
        binds[0] = (struct rebinding){"objc_autorelease", my_objc_autorelease, (void*)&origin_objc_autorelease};
        rebind_symbols(binds, 1);
    }
    

    剩余的17个函数都是类似的这种去测试。
    测试的结果如下:


    arc-fishhook.jpg

    其中第18行(objc_storeStrong)是无法进入这个函数,但是在那个进入的那一块出现了递归调用(也就是说无法printf中的字符串)

    那些无法被调用的还没有研究明白如果有人知道了,欢迎留言讨论。

    相关文章

      网友评论

          本文标题:fishhook 支持ARC的18个函数初步探究

          本文链接:https://www.haomeiwen.com/subject/nfoeuqtx.html