.mobileprovision文件可以修改吗

文章背景

有人盗用企业证书进行打包,有些网页工具bundle id随便写,几分钟就可以完成打包。我们知道正常的打包需要以下几个条件

  1. 企业证书
  2. 企业开发者账号,或企业团队成员
  3. 在线创建.mobileprovision文件

证书可以泄露,有些人安全意识薄弱,把证书放在网上传输,或者上传到了一些平台。但是.mobileprovision文件需要登录开发者账号才能创建,即使拿到证书也没用啊。难道.mobileprovision文件可以编辑或者伪造?于是研究了一下 .mobileprovision 文件的修改。

基础介绍

.mobileprovision 文件是由苹果生成的二进制文件,内部结构完全由苹果定义。

.mobileprovision 文件用于应用的签名和授权。它包含了应用程序标识符、开发者证书、设备列表等信息。直接修改二进制文件极大可能导致文件损坏或无效。

1、查看 .mobileprovision

.mobileprovision文件是二进制文件,使用文本编辑器(如TextEdit、Sublime Text、Visual Studio Code等)打开.mobileprovision文件,会看到一些乱码。

使用Xcode查看mobileprovision文件:

这种方式只能看到 mobileprovision文件的部分内容,无法编辑。

使用终端指令查看*mobileprovision文件:

security cms -D -i /path/to/your.mobileprovision

可以查看mobileprovision文件所有内容,无法编辑。

2、编辑.mobileprovision

通过终端指令的方式编辑.mobileprovision:

使用命令行工具security导出.mobileprovision文件的内容,将其保存为文本文件:

security cms -D -i /path/to/MobileProvision.mobileprovision > output.plist

打开导出的output.plist文件,可以使用文本编辑器或命令行工具进行修改。找到”name”键所对应的值,并进行修改。

修改完成后,将output.plist文件重新导出为 .mobileprovision文件:

security cms -D -i output.plist -o modified.mobileprovision

执行完 3 后,终端报错,但仍旧生成了 modified.mobileprovision。

双击打开 modified.mobileprovision,Xcode报错:

UUID可以理解为文件的唯一标识,在linux中经常用,因为linux一切皆文件,所以你的硬件设备也是文件,他也会有UUID。

每个文件都有UUID,UUID是通过系统自动生成的。我们无法操控。

3、结论

苹果不允许我们手动修改.mobileprovision文件;

修改 .mobileprovision文件 前后,该文件的 MD5值发生变化;

经测试,在删除 .mobileprovision文件后,Xcode也会提示UUID属性缺失。猜测UUID就是简单的UUID,XcodeUUID错误,也只是新的.mobileprovision文件没有通过过苹果认证然后报错的,只是就是展示了这个错误而已。

在线的打包工具应该是破解了.mobileprovision文件的生成方式,所以仅需要企业证书,自己生成.mobileprovision文件。

百度大模型

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

腾讯云图