Logos语法

Logos语法

logos 语法主要是对Cydia Substrate的MSHookMessageEx函数作了一层封装。

1.%hook
指定需要hook的class,必须以%end结尾。

2.%log
该指令在%hook内部使用,将函数的类名、参数等信息写入syslog,可以%log([(),…..])的格式追加其他打印信息。

3.%orig
该指令在%hook内部使用,执行被hook的函数的原始代码;也可以用%orig更改原始函数的参数。

4.%group
该指令用于将%hook分组,便于代码管理及按条件初始化分组,必须以%end结尾。
一个%group可以包含多个%hook,所有不属于某个自定义group的%hook会被隐式归类到%group_ungrouped中。

5.%init
该指令用于初始化某个%group,必须在%hook或%ctor内调用;如果带参数,则初始化指定的group,如果不带参数,则初始化_ungrouped.
注:
切记,只有调用了%ini,对应的%group才能起作用!

6.%ctor
tweak的constructor,完成初始化工作;如果不显示定义,Theos会自动生成一个%ctor,并在其中调用%init(_ungrouped)。

7.%new
在%hook内部使用,给一个现有class添加新函数,功能与class_addMethod相同。
注:
Objective-C的category与class_addMethod的区别:
前者是静态的而后者是动态的。

8.%c
该指令的作用等同于objc_getClass或NSClassFromString,即动态获取一个类的定义,在%hook或%ctor内使用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • %hook --字面意思为 勾住指定需要hook的class,必须以%end结尾,如: %hook Spring...
    赤洱阅读 996评论 0 0
  • release版本debug=0; make package包含了make的操作。 加载动态库的时候执行%ctor...
    丿沧海一粟丿阅读 2,353评论 0 0
  • 维基百科:http://iphonedevwiki.net/index.php/Logos 10.1 Block-...
    泰克2008阅读 1,045评论 0 0
  • // Tweak.xm 1.预处理指令 %hook 指定需要hook的class,必须以%end结尾 这段代码的意...
    Cyrill阅读 4,702评论 2 4
  • 孙丽 焦点网络初级十期 信阳 坚持分享第24天 不知不觉已走过了24天,感觉这二十多天,关注最多的还是孩子,收获最...
    孙丽_cdb3阅读 321评论 0 0