0

我想检测我的 macOS 应用程序可执行文件是否已被某人更改。我不会依赖 Codesign,因为正如我在网上看到的那样,即使经过 Apple 公证,许多应用程序也已被破解。我知道这不能保证最高的安全性,但无论如何我都会添加这种自定义保护。

A)如果我在应用程序存档后(因此在 xcarchive 包中)在捆绑包的 Resources 文件夹中添加校验和文件,则为时已晚。由于操纵,该应用程序将无法启动。我因“终止原因:命名空间代码设计,代码 0x2”而崩溃​​。

B)如果我在应用程序公证后添加或修改校验和文件,同样,它不会启动。

C)如果我在构建阶段使用 shell 脚本修改校验和资源文件,在“运行复制捆绑资源”阶段之前,校验和是错误的,因为此时可执行文件具有不同的文件大小和文件修改日期。

那么,将我自己的校验和文件添加到我的应用程序包中的最佳方法是什么?我运行 macOS 10.15.6 和 XCode 11.5 并为 macOS 10.3/10.5 编译我的 64 位应用程序。

4

1 回答 1

1

如果我理解正确,您是在尝试验证您的应用程序是否与您交付时一样?而且您担心代码设计还不够,因为它可能会被“破解”?

我不相信这可以通过使用任何类型的校验和来解决。任何可能危及代码设计的东西,也可能危及您的校验和。

相反,我会查看新的 Apple Attestation API。这旨在允许应用程序验证它是否在 Apple 硬件上运行,并且是代码签名版本。(修改和签名的应用程序会失败——它是由不同的密钥共同签名的)

https://developer.apple.com/documentation/devicecheck

于 2021-01-15T15:39:56.190 回答