iOS hook别人的插件

/ 2

过程

1.将第三方插件的 deb 包解压,得到 xxx.dylibxxx.plist 文件。

2.创建 Tweak 工程。

3.将 xxx.plist 文件中的内容替换我们创建的工程的 plist 文件内容。

4.将 xxx.dylib 拷贝到工程根目录的 layout/Library/MobileSubstrate/DynamicLibraries 目录下(需要自己创建目录),目的是为了安装我们插件的同时,把第三方插件的 dylib 也一起安装到相同目录下。

5.在 %ctor 中使用 dlopen 函数加载第三方插件:

#include <dlfcn.h>

%ctor {
    NSString *dlPath = @"/Library/MobileSubstrate/DynamicLibraries/xxx.dylib";
    const char *cdlpath = [dlPath UTF8String];
    dlopen(cdlpath, RTLD_LAZY);
}

6.然后就是发挥想象力,进行最难的常规操作了。