您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > IOS

IOS超级签名原理及实现

时间:2019-11-22 11:57:58  来源:  作者:

在大部分超级签名原理及实现都是基于linux平台来实现签名的,代码都是JAVAphp的需要各种部署,各种调用第三方工具,具体实现起来还是有些麻烦的,以下介绍超级签名完全基于windows平台来实现,方便部署,给不懂php和linux提供个思路。


超级签名原理

签名原理其实就是,使用了苹果提供给开发者的Ad-Hoc分发通道,把安装设备当做开发设备进行分发,要做到自动化首先需要获取用户设备的UDID,获取UDID后需要将UDID添加到苹果开发者中心进行生成描述文件,根据生成的描述文件、证书文件、待签名包进行重新签名生成安装包ipa。

整体流程

IOS超级签名原理及实现

 

接下来我们就看看整套机制是如何进行的:

设备安装描述文件后,设备会向服务器(描述文件内回调服务器地址)发送设备的UDID。

服务器收到UDID后,将UDID注册到某个苹果开发者账号下。

再生成签名用的描述文件,给IPA签名。

然后iPA传Server,使用itms-services方式让用户下载。

技术细节

UDID的获取:

苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数)。这里的一个概述:

在你的Web服务器(可以是任意语言的web服务)上创建一个.mobileconfig的XML格式的描述文件;

用户下载描述文件后需要再手机设置里操作完成.mobileconfig描述文件的安装;

服务器需要的数据:UDID,需要在.mobileconfig描述文件中配置好,以及服务器接收数据的URL地址;

当用户设备安装描述文件后,设备会回调你设置的URL,如果你的URL返回302跳转的话,Safari浏览器会跳转到你所给的地址;

开发者设备注册 更新Provisioning Profile:

注册设备前提是需要登陆苹果开发者中心才能有权限注册设备,现有文章资料是通过(AppleDeveloperCenter自动化工具)调用Api实现注册更新,这个工具我没有去研究,应该是个很不错的工具。下面介绍下直接通过调用苹果开发者网站接口来实现登陆注册和更新描述文件,直接调用苹果接口的速度基本是秒生成,和AppleDeveloperCenter工具理论是一个方式都是调用Api接口所以在速度方面是相同的。

登陆苹果开发者网站有很多请求头参数,最主要的就是“X-Apple-I-FD-Client-Info” 参数,X-Apple-I-FD-Client-Info请求头算法决定着通过苹果的验证

这里大致说下算法参数,这个算法通过获取浏览器的类型navigator.browser,浏览器版本navigator.Version,浏览器语言navigator.browserLanguage,插件Plugin,地域area,时间timestamp,screen.deviceXDPI,screen.deviceYDPI等多个参运算才能生成一个动态验证串 json 如下

{"U":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/77.0.3865.90 Safari/537.36","L":"zh-CN","Z":"GMT+08:00","V":"1.1","F":"cOa44j1e3NlY5BSo9z4ofjb75PaK4Vpjt.gEngMQEjZr_WhXTA2s.XTVV26y8GGEDd5ihORoVyFGh8cmvSuCKzIlnY6xljQlpRD__htduVCbqWxf7_OLgiPFMJhHFW_jftckkCoqAkCoq0NUuAuyPB94UXuGlfUm0NUbNiqUU8jA2Q3wL6k03x0.5EwHXXTSHCSPmtd0wVYPIG_qvoPfybYb5EvYTrYesSAAQnIp.QEh2vLG9mhORoVijvw2WwjftckvIhIDLTK43xbJlpMpwoNSUC56MnGWpwoNHHACVZXnN9PL3rO8V.ueururJhBR.uMukAm4.f282pvEodUW2RjOI0NTg7lrCU.6elV2pNJFv64WDvUL0TFl9kmFxH_UavEp.icCmx_B4W1kl1BNlY6SGWY5BOgkLT0XxU..3hs"}

1.得到X-Apple-I-FD-Client-Info验证数据就可以登陆苹果开发者中心了,拿到授权Cookie可以操作开发者中心任意接口。

2.获取苹果团队TeamId,这在以后的注册设备,新建描述文件接口当中都会用到,具体的登陆地址以你可以使用Fildder进行抓包查看。

3.调用注册设备接口 “/services-account/QH65B2/account/device/addDevices.action” 提交设备UDID,teamid,devicePlatforms,deviceNames,deviceNumbers,register 参数进行注册。

4.创建描述文件 /services-account/QH65B2/account/ios/profile/createProvisioningProfile.action 我们通过这个接口来创建一个新的描述文件

IPA重新签名

ipa的组成

IOS超级签名原理及实现

 

事实上,ipa文件只是一个zip包,可以使用如下命令解压:

/usr/bin/unzip -q xxx.ipa -d

解压后,得到上图的Payload目录,下面是个子目录,其中的内容如下:

资源文件,例如图片、html、等等。

_CodeSignature/CodeResources。这是一个plist文件,可用文本查看,其中的内容就是是程序包中(不包括Frameworks)所有文件的签名。注意这里是所有文件。意味着你的程序一旦签名,就不能更改其中任何的东西,包括资源文件和可执行文件本身。iOS系统会检查这些签名。

可执行文件。此文件跟资源文件一样需要签名。

一个mobileprovision文件.打包的时候使用的,从MC上生成的。

Frameworks。程序引用的非系统自带的Frameworks,每个Frameworks其实就是一个app,其中的结构应该和app差不多,也包含签名信息CodeResources文件

重新签名条件需要获取对应文件:

UDID描述文件(上面我们已经拿到了)

苹果开发者账号Cer证书(这个可以从开发者账号下载,前提是你生成了这个证书)将这个证书通过openssl转换为p12证书(证书和密码)

有了上面两个文件后开始签名,签名利用到的工具大多数都是mac,linux平台的 mac平台成本高,这也就是为什么现在的签名大多数都是linux平台,以下大概介绍window平台下进行重签名。

IPA重新签名原理本质是利用苹果根证书进行校验开发者证书及利用证书加密,先要获取到苹果根证书 X509Certificate,再获取开发者账号证书

X509Certificate校验证书和密码,加载待签名IPA包利用证书给每一个文件进行重新签名。

重新签名后得IPA包使用itms-services方式下载,就可以安装到指定的UDID设备手机上了。


作者:一只懵逼的土拨鼠
链接:https://www.jianshu.com/p/95f579d0b445
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



Tags:IOS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
应用锁一直是苹果用户的痛点,毕竟这功能隔壁安卓早就有了。 为什么苹果一直不给上应用锁的功能呢?之前记者也有提问过苹果的前设计师(首席声优)艾维,他说在苹果的逻辑里,手机密码...【详细内容】
2021-12-23  Tags: IOS  点击:(27)  评论:(0)  加入收藏
众所周知,由于今年iOS 15系统的更新幅度不大,导致不少果粉的升级欲望大大降低,iOS 15系统的安装率也远低于去年的iOS 14系列,今年的iOS 15这么拉跨,那么明年的iOS 16呢? 目前关于i...【详细内容】
2021-12-22  Tags: IOS  点击:(9)  评论:(0)  加入收藏
IT之家 12 月 20 日消息,百度网盘青春版 iOS 客户端今日晚间率先开启内测,安卓客户端将在稍后内测。使用苹果 iPhone 的IT之家小伙伴可以点此下载内测版,需要先下载 TestFlight...【详细内容】
2021-12-21  Tags: IOS  点击:(10)  评论:(0)  加入收藏
相信很多小伙伴都遇到过这种情况,一台iPhone放太久了,当初设置的锁屏密码是什么都自己忘了。 这时候我们只能通过连接电脑进入恢复模式再进行刷机或者用另一台iPhone(登录的是...【详细内容】
2021-12-21  Tags: IOS  点击:(16)  评论:(0)  加入收藏
近日苹果发布 iOS 15.2/iPadOS 15.2 正式版的更新,整合了此前测试版中所有新功能,因此更新内容不少,也有一些值得了解的实用功能。有没有必要更新 iOS 15.2 正式版?看完如下功能...【详细内容】
2021-12-17  Tags: IOS  点击:(24)  评论:(0)  加入收藏
虽然手机圈每隔几天就会有新机登场,但依旧有小伙伴表示内心毫无波澜—— 「你发任你发,我的小米 6 还能再战两年。」 就算是电池损耗了,按键不灵了,屏幕摔碎了,修一修...【详细内容】
2021-12-16  Tags: IOS  点击:(7)  评论:(0)  加入收藏
苹果昨日向 iPhone 和 iPad 用户推送了 iOS 15.2 / iPadOS 15.2 正式版更新,带来了多项新功能。据 9To5Mac 报道,iOS 15.2 / iPadOS 15.2 还有一项新功能,允许用户不借助 Mac...【详细内容】
2021-12-16  Tags: IOS  点击:(30)  评论:(0)  加入收藏
今天发了几个关于iOS15.2正式版的微头条,没想到引发了大家不小的讨论,看来大家对于新版本还是有不少期待的,不少人今天早上睡醒之后就选择了升级,还有一些小伙伴一直在纠结要不...【详细内容】
2021-12-15  Tags: IOS  点击:(21)  评论:(0)  加入收藏
在今天凌晨,苹果正式上线了 iOS 15.2 正式版 以及 watchOS 8.3 的新版本,这个正式版其实我是一直比较期待的,因为在此前的开发者测试版本中,就一直在内测APP 隐私报告,数字遗产以...【详细内容】
2021-12-15  Tags: IOS  点击:(22)  评论:(0)  加入收藏
【手机中国新闻】随着互联网进一步深入到我们的生活,我们已经与数字化脱不开关系了,同时在网络上拥有很多对于我们而言有价值的事物。因此,有不少网友在思考,自己故去以后,网络上...【详细内容】
2021-12-14  Tags: IOS  点击:(9)  评论:(0)  加入收藏
▌简易百科推荐
前言最近对 WebRTC iOS 端源码进行了下载和编译,网上针对 WebRTC iOS 端的编译文章基本都是几年前的,有些地方已经不适用于最新版的 WebRTC 的编译,简单记录下载&编译的过程,以...【详细内容】
2021-11-10  anyRTC云平台    Tags:WebRTC iOS   点击:(38)  评论:(0)  加入收藏
IT之家 10 月 20 日消息,据 9to5 Mac 报道,继 iOS 15.1 RC、macOS Monterey RC 和其他更新发布后,苹果也向开发者提供了 Xcode 13.1 RC(候选版)。最新版本的 Xcode 现在可以在苹...【详细内容】
2021-10-20    IT之家  Tags:Xcode   点击:(88)  评论:(0)  加入收藏
IT之家 8 月 12 日消 苹果今日发布了一款新的开发者工具,旨在强制那些运行 iOS 15 和 iPadOS 15 的设备在使用不安全的 WiFi 网络或 WiFi 速度较慢时优先使用 5G 连接而不是...【详细内容】
2021-08-12    IT之家  Tags: iOS   点击:(151)  评论:(0)  加入收藏
IT之家4月7日消息 去年底,苹果公司要求应用商店所有第三方软件都必须增加 “隐私标签”以进一步保护消费者隐私安全。之后,谷歌旗下大量 iOS 软件长时间停止更新。而到了今年...【详细内容】
2021-04-07    IT之家  Tags:苹果隐私标签   点击:(309)  评论:(0)  加入收藏
你们好,这里是Seek思科,为你寻找苹果最新资讯、苹果隐藏技巧、苹果良心APP以及苹果优质配件。如果你需要这些,不妨点个关注。苹果已经官宣今年全球开发者大会将在北京时间6月8...【详细内容】
2021-04-02  Seek思科  今日头条  Tags:iOS15系统   点击:(370)  评论:(0)  加入收藏
Sideloadly安装unc0ver越狱 今天推荐比Altstore更简单的安装工具,Sideloadly 在QQ群文件下载最新版本安装, 然后直接打开,演示是Mac版本 Win是一模一样的, 不会出现报错2或...【详细内容】
2021-03-30  CydiaInstaller  今日头条  Tags:iOS自签名   点击:(1281)  评论:(0)  加入收藏
就在昨日,苹果对《App Store 审核指南》进行了2021年的首次重大更新。而此次更新主要是为了方便开发者为即将发布的OS版本中的新功能提供支持,更好地保护用户,并帮助开发者的Ap...【详细内容】
2021-02-03      Tags:App Store   点击:(205)  评论:(0)  加入收藏
不用不上架、不越狱、不要企业证书、永不掉签 只需一个h5网站地址 就能创建属于您自己的苹果IOS APP_多啦咪资源网无需越狱 无需企业证书 不用上架appStore 界面全屏 无广告...【详细内容】
2020-12-11      Tags:APP   点击:(177)  评论:(0)  加入收藏
iOS14支持把小组件添加到桌面,不过我们之前推荐的都是一些工具类的或者是桌面美化类的小组件,今天我们来看看目前有哪些我们常用的App已经支持把小组件添加到桌面了。 网易云...【详细内容】
2020-11-26      Tags:iOS   点击:(185)  评论:(0)  加入收藏
简介: 在平时的面试中,经常问到的高频面试题大概做了一个总结,希望能帮到你!一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView...【详细内容】
2020-11-13      Tags:iOS   点击:(146)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条