一、Logos 语法
- Logos 作为 Theos 开发组件的一部分,通过一组特殊的预处理指令,可以让编写函数钩子(hook)代码变得非常简单和清晰,Logos 是随着 Theos 发布的。
- %hook 指定需要 hook 的类名,以 %end 结尾。
- %log 用来打印 log,将信息输入到 syslog 中,如 %log((NSString *)@“ZeluLi”)。
- %orig 执行被 hook 函数的原始代码,类似于 super.method 功能。
- %group 该指令用于 %hook 的分组,%group 后边跟的是组名,%group 也是必须以 %end 结尾,其中可以包含多个 %hook。
- %init 该指令用来初始化某个 %group,一个 group 只有被初始化后才可生效,init 必须在 hook 中进行执行。
- %ctor tweak 的构造器,用来初始化,如果不显式定义,Theos 就会自动生成一个%ctor,并在其中调用 %init(_ungrouped),如:%ctor { %init(_ungrouped)}。
- %new 该指令用来给现有的 class 添加一个新的函数,与 Runtime 中的 class_addMethod 相同。
- %c 该指令用来获取一个类的名称,相当于 objc_getClass。
二、工程目录下文件
- 新建工程的命令:$THEOS/bin/nic.pl:
devzkndeM