加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 使用开发证书重新调用appstore导出的IPA

发布时间:2020-12-14 17:19:53 所属栏目:百科 来源:网络整理
导读:题 是否可以使用开发证书和配置文件重新签名/提供为AppStore导出的IPA? 我可以做实际的辞职,并且在手动验证时看起来很好,但是我尝试使用的任何应用程序都会在启动时崩溃.我不是要试图从AppStore下载一个应用程序,这些是我的计算机上构建的应用程序. 没有一

是否可以使用开发证书和配置文件重新签名/提供为AppStore导出的IPA?

我可以做实际的辞职,并且在手动验证时看起来很好,但是我尝试使用的任何应用程序都会在启动时崩溃.我不是要试图从AppStore下载一个应用程序,这些是我的计算机上构建的应用程序.

没有一种流行的工具似乎也做得对.有没有人把它拉下来或者由于某种原因它是不可能的?

发现

在设备日志中,我没有看到应用程序进程本身报告的任何内容,因此操作系统必须在启动之前将其杀死.我确实看到了这个:

securityd[101] <Notice>: cert[0]: CheckLeafMarkerOid =(leaf)[]> 0
securityd[101] <Notice>: cert[0]: SubjectCommonName =(leaf)[]> 0
securityd[101] <Notice>: cert[0]: IssuerCommonName =(path)[]> 0
amfid(Security)[196] <Notice>:  [leaf CheckLeafMarkerOid IssuerCommonName SubjectCommonName]
amfid(libmis.dylib)[196] <Info>: Blacklist does not exist.
amfid(libmis.dylib)[196] <Info>: Using empty blacklist.
amfid(libmis.dylib)[196] <Info>: CreateMISAuthListWithStream: open stream failed (may be non-existing)
amfid(libmis.dylib)[196] <Info>: CreateMISAuthListWithStream: creating empty auth list
assertiond[66] <Notice>: Unable to obtain a task name port right for pid 1683: (os/kern) failure (5)
SpringBoard(FrontBoard)[57] <Error>: Unable to register for exec notifications: No such process
SpringBoard(BaseBoard)[57] <Error>: Unable to get short BSD proc info for 1683: No such process
SpringBoard(BaseBoard)[57] <Error>: Unable to get proc info for 1683: No such process
SpringBoard(BaseBoard)[57] <Error>: Unable to obtain a task name port right for pid 1683: (os/kern) failure (0x5)
SpringBoard(BaseBoard)[57] <Error>: Unable to get short BSD proc info for 1683: No such process
SpringBoard(FrontBoard)[57] <Error>: Unable to obtain a process handle for <FBApplicationProcess: 0x10bc26cd0; com.company.product.name; pid: 1683>

这似乎表明权利问题.但是,当我手动打印它们时(/usr/libexec / PlistBuddy -x -c“print:Entitlements”/ dev / stdin<<< $(security cms -D -i“$1”/embedded.mobileprovision)&gt ; entitlements.plist
)从我安装的IPA我有:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>application-identifier</key>
        <string>TEAMID.*</string>
        <key>com.apple.developer.default-data-protection</key>
        <string>NSFileProtectionComplete</string>
        <key>com.apple.developer.team-identifier</key>
        <string>TEAMID</string>
        <key>get-task-allow</key>
        <true/>
        <key>keychain-access-groups</key>
        <array>
                <string>TEAMID.*</string>
        </array>
</dict>
</plist>

这清楚地表明get-task-allow权利是真的.

工具

无论我尝试哪种工具,我都会得到相同的结果,例如

> https://dantheman827.github.io/ios-app-signer/
> https://github.com/nowsecure/node-applesign
> https://github.com/fastlane/fastlane/blob/master/sigh/lib/assets/resign.sh

类似的问题

> can we resign the appstore build with our development certificates?简单没有答案,似乎不正确,因为我能够在没有警告或错误的情况下执行实际的辞职操作.
> Resign iOS App from a distribution identity to a developer identity显示如何验证和/或调整已辞职的IPA中的最终权利.
> iOS resign IPA from appstore with developer profile问题比较老,但其中一个评论者最终报告了相同的观察行为:“但它不能正常运行,它闪回.直到现在我都不知道它”.

更新1

(对@Yoshkebab的反应)

输出otool表示二进制文件未加密:
otool -l App / Payload / App.app / App | grep -A 4 -i加密:

cmd LC_ENCRYPTION_INFO
      cmdsize 20
     cryptoff 0
    cryptsize 0
      cryptid 0
--
          cmd LC_ENCRYPTION_INFO_64
      cmdsize 24
     cryptoff 0
    cryptsize 0
      cryptid 0

但是例如Hopper无法拆解它…有没有引用Apple在Xcode中应用加密?这表明他们在用户的系统上有一把钥匙?此外,我没有看到表明这一点的构建步骤(codesign只是添加签名,不?)

Clutch无法看到我的应用程序,并且Stefan Esser的dumpdecrypted库不起作用,因为应用程序立即崩溃我怀疑(我的设置正常,因为它适用于其他应用程序).

解决方法

AppStore签名的应用程序不仅由开发人员的证书签名,而且二进制文件也由Apple的私钥加密.
因此,您可以重新签名应用程序,但除非您解密二进制文件,否则您将无法运行它们.
查看二进制文件的LC_ENCRYPTION_INFO加载命令(最简单的方法是使用 MachoView),如果看到标志Crypt ID!= 0,则二进制文件被加密.

假设它是,你仍然可以这样做,这有点乏味,你需要一个安装了App的监狱设备.

>使用SSH连接到您的设备.使用gandalf最简单的方法
>获取Clutch并将其安装在您的设备上 – 按照他们的说明操作(我发现编译它的最简单方法是更改??包名称)
>将解密的应用转储到新的IPA(离合器-d“YOUR_PACKAGE_ID”)

现在你有一个解密的IPA,你可以辞职

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读