您的位置:首页 > 移动开发 > IOS开发

iOS Hacker 重签名实现无需越狱注入动态库 dylib

2017-08-15 10:31 387 查看

iOS Hacker 重签名实现无需越狱注入动态库 dylib

一、获取 ipa 文件

iOS 的应用都是打包成 ipa 的文件格式,ipa 文件实际上就是 zip 格式的文件,通过 unzip 可以解压,和安卓下的 apk 包类似。App Store 下载完应用,就把 ipa 解压到某个目录,然后把 ipa 删除,那么我们如何获取 ipa 文件呢?

可以通过 iTunes 安装来获取 ipa 文件,在 iTunes 上安装应用会保存在 ~/Music/iTunes/iTunes Media/Mobile Applications 目录,只需要将文件复制出来就可以了,如图:



目录:~/Music/iTunes/iTunes Media/Mobile Applications



二、脱壳

由于是从 App Store 下载的 ipa 文件,所以是加壳的,得去掉壳才能干活,去壳的方法可以参考:http://blog.csdn.net/sysprogram/article/details/72887473

三、注入动态库 dylib

注入动态库的方法可以参考我的第二种方法,添加 LoadCommand

http://blog.csdn.net/sysprogram/article/details/75579301

四、重签名并打包

主要就是重签名并打包了,这点是比较坑的地方,很多人在这一步遇到问题。签名是苹果的一套安全机制,这套东西阻止了程序在 iOS 设备上运行,如果要发布程序,首先得去苹果的开发者中心里生成配置文件(Provisioning profile),这个配置文件标识了哪些设备能运行你的应用,这就是为什么要在开发者中心要添加设备的 UDID 的原因了,如果你的配置文件是发布 App Store 的类型的,那么签名机制就不会检测设备的 UDID,但如果选择了App Store 的类型的配置文件,有可能你设备上安装不了重签名的应用,因为重签名的应用一般上架不了 App Store,只能使用 iTunes 或 Xcode 等一些工具安装。

这让我们想起了苹果开发者的三种类型,一种是个人(99),一种是公司(99),还有一种是企业(299$),苹果官方的说明:https://developer.apple.com/support/compare-memberships/,个人和公司类型主要是用于上架 App Store 的,而企业不能上架 App Store ,主要用于分发给企业内部使用,我怀疑如果是企业类型的证书,有可能无需添加 UDID 也能运行,但是手上没有企业证书,所以还验证不了。



为了方便,我们可以使用开源工具 iOS App Signer,这个工程可以自动搜索本机的证书和配置文件,源码地址:https://github.com/DanTheMan827/ios-app-signer

源码如果编译不过,可以下载编译好的程序,地址:https://github.com/DanTheMan827/ios-app-signer/releases/download/1.9/iOS.App.Signer.app.zip

选择好解压的应用.app,然后选择好证书和相应的配置文件(Provisioning profile),点击开始就会自动打包生成 ipa 文件了。



五、安装

安装方法可以使用 iTunes 或 Xcode。

使用 iTunes 安装,插上你的手机,信任之后点击应用,选择 iTunes 的菜单 文件 -> 添加到资料库,选择好你打包好的 ipa 文件,在应用列表里就会显示出来,点击同步就可以了。



使用 Xcode 安装,点击 Xcode 的菜单 Window -> Devices,在 Devices 的界面里选择手机,点 + 号,选择你打包好的 ipa 文件就行了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息