我们有一个适用于 ios 的应用程序 最后——我们进行了代码设计,但我想在可执行文件本身内添加一个额外的安全检查。
我知道苹果已经签署了应用程序。如何在我的应用程序中获取苹果签署的信息?比如苹果公钥还是别的什么?
我们有一个适用于 ios 的应用程序 最后——我们进行了代码设计,但我想在可执行文件本身内添加一个额外的安全检查。
我知道苹果已经签署了应用程序。如何在我的应用程序中获取苹果签署的信息?比如苹果公钥还是别的什么?
您不应该尝试对 Apple 的 Fairplay DRM 做出假设,假设您打算验证它,如果没有 Apple 的密钥,您将无法做到这一点,但我认为您正在寻找其他篡改/盗版指标.
有几种方法可以检查您的应用程序是否已被篡改。假设 Apple 的 Fairplay DRM 是安全的,那么如果您检测到您的应用程序未加密运行,那么它很可能被篡改,更有可能是盗版。您可以检查段中的cryptid
位LC_ENCRYPTION_INFO
(更多信息请参见此处)。但请记住,现在盗版工具要复杂得多,许多会cryptid
在运行时修补价值。您可能会使用dyld_*
API 检查加载的库,如果cryptid
加载了黑客,您的应用程序可能已被入侵。他们当然可以更改库的名称,而您又回到了原点。他们总是可以改变cryptid
在应用程序运行时在磁盘上位,并在应用程序终止时将其切换回来。
因此,尽管您有多种途径可以探索,但实际上,您无能为力。苹果曾试图通过技术和法律措施防止越狱,但都失败了。而且只要能越狱,就可以通过这些方式篡改二进制文件。