美文网首页iOS逆向开发
<安全攻防之Logos语法>

<安全攻防之Logos语法>

作者: 高阿呆 | 来源:发表于2019-11-28 09:17 被阅读0次

    Logos概述

    Logos是Theos开发套件的一个组件,通过一组特殊的预处理指令,轻松而清晰地编写被hook的方法。
    未安装MonkeyDev的请参考文档进行安装,安装成功后会在电脑根目录下生成一个opt文件夹,新建iOS项目的时候在最下方可以新建Monkey项目

    class-dump.png
    monkey.png

    Logos使用

    • ①.新建iOS项目


      UI.png
    • ②.编译后在ipa包中找到MachO文件并使用class-dump导出项目所有头文件,并用Sublime打开
    // 参数一 MachO文件名称
    // 参数二 导出的路径
    // -H header简写
    // -o 输出 output简写
    // Ex: class-dump -H fishhook -o fishhookHeaders
    $class-dump -H xxx -o xxx
    
    classHeaders.png
    • ③新建Monkey项目,把ipa包放入该项目Logos/TargetApp目录下并运行


      logosM.png

    Logos语法

    • %group 分组的使用,对于不同的分组,处理的逻辑不同
    %group iOS8
    %hook IOS8_SPECIFIC_CLASS
        // your code here
    %end // end hook
    %end // end group ios8
    
    %group iOS9
    %hook IOS9_SPECIFIC_CLASS
        // your code here
    %end // end hook
    %end // end group ios9
    
    // 分组必须要写构造方法
    %ctor {
        if (kCFCoreFoundationVersionNumber > 1200) {
            %init(iOS9);
        } else {
            %init(iOS8);
        }
    }
    
    • %hook使用
    %hook xxx // 要hook的类名
    
    // 需要hook当前类下得哪个方法
    - (void)touchesBegan:(id)arg1 withEvent:(id)arg2 {
       // your code here
      %orig; // 不改变原来方法的实现逻辑
    }
    
    %end // end hook
    
    • %new使用, 给类或者子类添加新的方法,可以添加多个方法,但是必须在%hook block中使用
    %hook ViewController
    
    %new 
    - (void)eat{
      // 给ViewController类添加了一个eat方法
    }
    
    %end
    
    • %property 给类添加属性
    %property (nonatomic|assign|retain|copy|weak|strong|getter|setter) Type name;
    

    相关文章

      网友评论

        本文标题:<安全攻防之Logos语法>

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