iOS逆向开发

<安全攻防之Logos语法>

2019-11-28  本文已影响0人  高阿呆

Logos概述

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

class-dump.png
monkey.png

Logos使用

// 参数一 MachO文件名称
// 参数二 导出的路径
// -H header简写
// -o 输出 output简写
// Ex: class-dump -H fishhook -o fishhookHeaders
$class-dump -H xxx -o xxx
classHeaders.png

Logos语法

%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 xxx // 要hook的类名

// 需要hook当前类下得哪个方法
- (void)touchesBegan:(id)arg1 withEvent:(id)arg2 {
   // your code here
  %orig; // 不改变原来方法的实现逻辑
}

%end // end hook
%hook ViewController

%new 
- (void)eat{
  // 给ViewController类添加了一个eat方法
}

%end
%property (nonatomic|assign|retain|copy|weak|strong|getter|setter) Type name;
上一篇下一篇

猜你喜欢

热点阅读