iOS逆向小知识: 将功能独立的tweak 合并为一个deb 包

网友投稿 257 2022-09-20

iOS逆向小知识: 将功能独立的tweak 合并为一个deb 包

引言

昨天讲解了​​如何搭建私有Cydia源来批量部署插件​​,今天就来聊一聊如何讲将功能独立的tweak 合并到同一个deb 包。

I、功能独立的tweak合并到同一个deb 包

搭建私有Cydia源时,发现deb 包的目录结构很简单,于是乎就产生了合并多个tweak的想法。

将tweak合并到同一个deb 包,只需将​​dylib​​​和对应的​​plist​​文件放到layout目录。

5 files changed, 3 insertions(+), 1 deletion(-) create mode 100755 Layout/Library/MobileSubstrate/DynamicLibraries/SBLockScreenViewController.dylib create mode 100644

在%ctor 中根据 processName 进行%init group

​​ %ctor​​ 必须放置于最后,否则找不到group

%ctor{ if ([[[NSProcessInfo processInfo] processName] isEqualToString:@"knWeChat"]) %init(wxHook); if ([[[NSProcessInfo processInfo] processName] isEqualToString:@"SpringBoard"]) %init(sbHook);}

II、基础知识储备:logos 语法

2.1 %ctor

tweak的constructor,完成初始化工作;如果不显示定义,Theos会自动生成一个%ctor,并在其中调用%init(_ungrouped)。%ctor一般可以用来初始化%group,以及进行MSHookFunction等操作

2.2 %group

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

2.3 %init

该指令用于初始化某个%group,必须在%hook或%ctor内调用;如果带参数,则初始化指定的group,如果不带参数,则初始化_ungrouped.

只有调用了%init,对应的%group才能起作用!

2.4 %property

如果你想使用全局变量,推荐你尝试应用下这个熟悉。

Add a property to a %subclass just like you would with @property to a normal Objective-C subclass as well as adding new properties to existing classes within %hook.%property (nonatomic|assign|retain|copy|weak|strong|getter|setter) Type name;

2.5 %subclass

Subclass block - the class is created at runtime and populated with methods. ivars are not yet supported (use associated objects).The %new specifier is needed for a method that doesn't exist in the superclass. To instantiate an object of the new class, you can use the %c operator.Can be inside a %group block.

see also

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:乔家大院所在地村主任被判无期,多项犯罪事实与拆迁安置相关!
下一篇:如何在 FlowUs、Notion 等笔记软件中使用矩阵分析法建立你的思维脚手架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~