Logos

作者: coder_feng | 来源:发表于2020-05-11 17:29 被阅读0次

    Logos

    Logos语法其实是CydiaSubstruct框架提供的一组宏定义,便于开发者使用宏进行Hook操作,语法简单,功能强大且稳定(http://iphonedevwiki.net/index.php/Logos)

    Logos语法

    Logos 语法分为三大类

    • Block level
    这一类型的指令会开辟一个代码块,以%end结束。
    %group,%hook,%subclass,%end
    

    Top level

    这个TopLevel指令不放在BlockLevel中
    %config,%hookf,%ctor,%dtor
    

    Function level

    这一块的指令就放在方法中
    %init,%class,%c,%orig,%log
    

    常用语法

    HOOK某个类里面的某个方法

    %hook ClassName
    //对象方法
    - (void)instanceMethod{
    }
    //类方法
    +(void)classMethod{
    }
    %end
    
    为某个类添加新方法
    %hook ClassName
    //添加一个类方法
    %new
    + (void)newClassMethod{
    }
    //添加一个对象方法
    - (void)newInstanceMethod{
    }
    %end
    

    其他语法

    %group
    用来将代码分组,开发中hook代码会很多,这样方便管理Logos代码

    • %group group1
    • %hook ClassName
      %end
      %end

    %ctor(constructor)
    构造函数,用于确定加载那个组,和%init结合用
    %init
    用来初始化某个组
    %log
    能够输入日志!!输出方法调用的详细信息
    %orig(original)
    这个就是保持原有的方法实现,如果原来的方法有返回值,那么%orig就有返回值的
    %new
    给某个类添加方法,在%hook和%end中使用
    %new

    • (void)touchesBegan:(NSSet<UITouch *> *) touches withEvent:(UIEvent *)event{
      [self.view endEditing:YES];
      }

    %c
    类似getClass函数,获得一个类对象,一般用于调用类方法

    相关文章

      网友评论

          本文标题:Logos

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