dylib动态库注入及重签名打包

今天介绍如何制作免越狱版本的插件
一、原理
1.越狱机器之所以能使用 tweak,主要是因为在越狱的时候,手机里就安装了 mobilesubstrate 这个库,这个库的作用就是能在程序运行的时候动态加载我们自己写的 dylib 动态运行库。而由于非越狱手机系统里面是没有这个库的,所以我们需要直接将这个库打包进 ipa 当中,使用它的 API 实现注入。

二、砸壳
1.直接在 PP 助手下载
2.自己在越狱手机上应用进行砸壳
这里就不多啰嗦了,我其他文章进行过详细的介绍

三、创建Tweak项目
这里就不多介绍了,我其他文章里有详细创建过程

四、dylib动态库
1.编译成功后在工程的.theos/obj/debug(.theos是个隐藏目录)目录下会找到我们需要的动态库.dylib结尾的文件。

2.检查依赖项,使用 macOS 自带的 otool 工具就可以进行依赖项检查,终端输入

otool -L wxRedTweak.dylib

在这里插入图片描述CyduaSubstrate这个库越狱手机中才有,我们需要用 libsubstrate.dylib替换这个库。

3.查看Theos安装目录/opt/theos/lib中是否有 libsubstrate.dylib文件,如果没有可以到https://github.com/kokoabim/iOSOpenDev/blob/master/lib/libsubstrate.dylib 下载

4.使用 install_name_tool 命令修改动态库的路径,指向 app 二进制文件的同级目录。

install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib wxRedTweak.dylib

5.查看修改以后的依赖项

otool -L wxRedTweak.dylib

在这里插入图片描述可以看到CydiaSubstrate 已经变更为libsubstrate.dylib。

6.接下来,就需要将我们的库注入到微信的二进制文件中,可以使用开源的 optool 工具。
编译安装 optool 工具

git clone --recursive https://github.com/alexzielenski/optool.git

然后用Xcode打开编译后,把Product目录下的optool二进制文件拷贝到/usr/local/bin目录下。
7.将砸壳过的 ipa 文件解压,然后将 libsubstrate.dylib 与 wxRedTweak.dylib 拷贝到解压后的 WeChat.app 目录下。

8.使用 optool 把 wxRedTweak.dylib 注入到二进制文件中:

 optool install -c load -p "@executable_path/wxRedTweak.dylib" -t WeChat.app/WeChat

五、打包并重签名
1.打包 ipa 与重签名可以直接使用图形化工具 ios-app-signer 来完成。
这个工具可以自动加载出本机的证书以及 Provisioning Profile 文件,使用起来十分方便,当然也可以手动选择证书文件。

2.如果是使用个人开发者证书,需要先将设备的 UUID 加到 Provisioning Profile 中。
我这里是直接从一个 archive 过的应用中提取 embedded.mobileprovision 文件,并在 Provisioning Profile 一栏中选择 Choose Custom File 使用这个文件。
点击 start 后,指定保存路径,iOS App Signer 就会帮你搞定所有事情。

六、安装
1.在 iOS App Signer 完成打包与重签名后,我们就可以进行安装了。
安装有两种方法,一种是使用 iTool 工具安装 ipa 文件。

另外一种是针对有 XCode 的伙伴,在菜单 - Window - Devices 中打开设置窗口。点击 Installed Apps 栏下面的 + 号就可以选择 ipa 文件进行安装了。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
iOS软件弹窗dylib库编写是一种在iOS平台上开发和使用动态链接库的方法。动态链接库(Dynamic Library)是一种共享库,可以被多个应用程序同时使用,以提供特定功能或服务。 编写iOS软件弹窗dylib需要以下步骤: 1. 创建一个新的Xcode项目。选择"Framework & Library"中的"Dynamic Library"模板。 2. 在项目中添加弹窗逻辑的代码,可以使用Objective-C或Swift语言来编写。 3. 将编写的逻辑封装为一个独立的类或函数,并在适当的位置调用。 4. 将编写的代码编译为dylib库,这可以使用Xcode的"Build"功能自动完成。 5. 导出dylib库文件,可以将其复制到其他项目中使用。 使用iOS软件弹窗dylib库的方法是: 1. 在需要使用弹窗功能的iOS应用项目中,导入dylib库文件。可以通过将dylib库文件直接拖拽到Xcode项目中来实现。 2. 在应用程序的源代码中,添加对dylib库的引用和使用。可以使用Objective-C的`dlopen`函数或Swift的`dyld`模块来加载和使用dylib库。 3. 根据dylib库中提供的API,使用需要的弹窗功能。 需要注意的是,dylib库的使用需要满足苹果的开发者政策和审核要求。在使用dylib库时,应确保遵循相关规定,并尽可能保证库文件的安全性和稳定性。 总结来说,iOS软件弹窗dylib库编写是一种在iOS平台上开发和使用独立动态库的方法。需要在Xcode中创建项目、编写弹窗逻辑、编译为dylib库,然后在其他应用项目中导入并使用该库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值