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

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

引言

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

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

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

deb包本质是一个压缩包文件,里面包含一些特定的目录和文件.

image.png

dpkg打包时会复制当前目录下layout下所有文件和目录,layout相当于设备的根目录。

image.png

  1. 将tweak合并到同一个deb 包,只需将dylib和对应的plist文件放到layout目录。
5 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100755 Layout/Library/MobileSubstrate/DynamicLibraries/SBLockScreenViewController.dylib
 create mode 100644 Layout/Library/MobileSubstrate/DynamicLibraries/SBLockScreenViewController.plist
  1. 在%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

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

2.2  %group

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

2.3  %init

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

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

2.4 %property

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

  1. 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.
  2. %property (nonatomic|assign|retain|copy|weak|strong|getter|setter) Type name;

2.5 %subclass

  1. Subclass block - the class is created at runtime and populated with methods. ivars are not yet supported (use associated objects).
  2. 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.
  3. Can be inside a %group block.

see also

目录
相关文章
|
3月前
|
API 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
iOS 开发高效率工具包:10 大必备工具
48 1
|
移动开发 前端开发 iOS开发
记录一下前端H5的复制功能在ios端的兼容性问题
记录一下前端H5的复制功能在ios端的兼容性问题
702 0
|
1月前
|
Linux iOS开发 开发者
ios ipa包上传需要什么工具
ios ipa包上传需要什么工具
24 0
|
2月前
|
Linux iOS开发 开发者
ios ipa 包上传需要什么工具
ios ipa 包上传需要什么工具
|
4月前
|
移动开发 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。
|
7月前
|
网络安全 iOS开发 开发者
frida环境配置、以及如何脱壳iOS包并安装到非越狱设备-制作iOS任意App分身
frida环境配置、以及如何脱壳iOS包并安装到非越狱设备-制作iOS任意App分身
980 1
|
8月前
|
Linux iOS开发 开发者
ios ipa包上传需要什么工具
iOS IPA包是iOS应用程序的安装包,可以通过iTunes或者其他第三方应用商店安装到iOS设备上。在开发iOS应用程序时,开发人员需要将应用程序打包成IPA包,然后上传到App Store或者
ios ipa包上传需要什么工具
|
安全 数据安全/隐私保护 iOS开发
iOS小技能:【发红包】使用tweak和lua脚本结合进行实现
我们开发的大部分越狱程序,都是编译成动态链接库(`例如:介绍的越狱程序(Tweak)开发,就是动态链接库。`),然后通过越狱平台的MobileSubstrate(iOS7上叫CydiaSubstrate)来加载进入目标程序(Target),通过对目标程序的挂钩(Hook),来实现相应的功能。
262 0
|
编解码 数据安全/隐私保护 Android开发
iOS上架及ipa包上传到AppStore
开发uniapp的app的时候,需要ios证书进行打包,打包后还需要将打包后的ipa上架,这样普通的使用者才能安装,ios应用无法像安卓那样将ipa文件发布在自己的服务器,然后安装,ios需要将ipa上传到app store上架,用户才能安装。 因此,我们上架的前提是需要一个打包的证书和证书profile文件,假如你还不清楚如何申请ios证书,可以参考这篇文章
301 0
iOS上架及ipa包上传到AppStore
|
数据安全/隐私保护 开发者 iOS开发
iOS上架及ipa包上传到AppStore
iOS上架及ipa包上传到AppStore
iOS上架及ipa包上传到AppStore