iOS动态库注入,可注入framework、dylib 这两种动态库(开发者创建的framework本质上还是一个静态库)。注入本质上是将动态库注入到可执行的 Mach-O 文件中。
注入静态库前提还是要理解重签名,以及使用脚本进行重签名的操作。在重签名成功的基础上执行注入流程。
iOS 代码重签名
1、framework 注入
注入之前,我们已经完成了重签名的操作。
项目名称 KYCodeSignature
1.1 新建 framework 包
新建一个 KYHookFramework.framework
静态库。
1.2 将 framework 添加到当前项目
1.3 添加编译后 framework 文件到 Mach-O 可执行文件
1.3.1 打开编译后的 KYCodeSignature.ipa
包,找到 Frameworks 文件,查看创建的 KYHookFramework.framework
是否被编译进来。
1.3.2 然后将 KYHookFramework
的可执行文件注入到该安装包下,已被重签名的Mach-O 文件中。
终端执行命令:
yololib #Mach-O文件名# #自定义库Mach-O文件路径#
1.3.3 将上一步注入完成的 Mach-O 文件拷贝到 KYCodeSignature/APP/被注入ipa包
下,替换原来的可执行文件。重新打包为 ipa 文件,编译运行到手机即可。
运行结果: