Logos

2020-05-11  本文已影响0人  coder_feng

Logos

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

Logos语法

Logos 语法分为三大类

这一类型的指令会开辟一个代码块,以%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代码

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

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

上一篇下一篇

猜你喜欢

热点阅读