上一篇文章介绍了通过Xcode对越狱ipa进行重签名。接着,签名成功后,我们肯定希望能注入一些自己的代码。接下来给大家介绍一下静态注入framework和dylib的方法。
PS:以下工程都是在重签名成功的工程中进行
==================分割线=====================
framework注入
新建一个framework工程
新建framework.png
2.添加依赖关系
framework添加依赖关系.png
接着我们可以在framework中随便写点代码,比如log一下,用作测试。运行程序
3.刚刚跟大家开了个玩笑,我们的代码并没有走。其实在app包中的frameworks文件夹下已经包含我们的framework了,至于为什么没有运行,这个涉及到MachO文件的结构,以后有时间给大家介绍。简单说一下,就是可执行文件中不包含我们的framework。
4.给MachO文件添加framework包的连接。这里需要用到一个工具yololib (工具大家自己上gitgub搜索吧)
>>>1. cd 到app工层目录下
>>>2. 执行指令
$ yololib textHook Frameworks/zshHook.framework/zshHook 在app中 textHook和Frameworks是同级的。
textHook是app里的macho文件 Frameworks/zshHook.framework/zshHook是 framework的macho文件相对textHook的位置 (Frameworks/xxx.framework/xxx)
PS:这个修改MachO文件修改的是工程外面的APP路径下的
framework修改macho文件.png
5.运行工程。我们就可以吃🍺🍶🥜瓜子米了。
================分割线================
dylib注入
接着我们介绍dylib的注入。
1.在重签成功的工程里的target中新增一个library
新增library.png
library默认是在Mac上的库,我们运行的是在iOS上,所以他们的架构是不同的,因此我们要修改dylib支持的架构。这个地方我们修改Base SDK 支持的架构就可以统一修改了。
修改dylib的架构.png
3.修改dylib的签名证书,选择ios的开发证书
4.像上面那样给工程添加copy files
5.像上面framework那样给app中的MachO文件加入我们dylib的链接地址。最后运行!
============分割线==================
给看到最后的小伙伴一个奖励:
我们可以把给MachO文件添加动态库链接的方法写在脚本里,在上次脚本的最后加上一句
#-----------------------------
#7.注入动态库 xcode
echo "开始注入"
#yololib MachO名称 动态库相对位置
FRAMEWORK_PATH="Frameworks/zshHookFramework.framework/zshHookFramework"
yololib "$TARGET_APP_PATH/$APP_BINARY" "$FRAMEWORK_PATH"
echo "结束注入"
FRAMEWORK_PATH接的是你自己的路径