借助 cycript 技术,所有 iOS 应用程序都能够调试并能够访问应用程序内部的变量和方法。
并且还可以覆盖运行时变量和方法。
有没有办法保护应用程序访问这些实例以避免黑客访问高安全值?
借助 cycript 技术,所有 iOS 应用程序都能够调试并能够访问应用程序内部的变量和方法。并且还可以覆盖运行时变量和方法。
YES
Cycript(简单)/ MobileSubstrate(中级)/ GDB for iOS(更高级)允许您修改运行时环境(即方法/对象/i.variables)并做更多事情。
有没有办法保护应用程序访问这些实例以避免黑客访问高安全值?
没有 100% 安全的方法。正如有人曾经说过的那样,您无法阻止每个黑客,但您可以放慢速度并阻止他们中的大多数。然后,如果您保护您的应用程序免受某些类型的攻击,您的应用程序将在不被黑客入侵的情况下存活更长时间。
对于 iOS 开发,要记住一件事:Objective-C(和 Swift)让黑客非常容易 操纵运行时和进行静态分析。简而言之:这是由于这些语言在二进制文件中的编译和组织方式。
由于它是由于语言,您可以使用其他语言来避免这种情况!这就是为什么对于处理敏感信息的安全相关代码,建议使用 C/C++ 等其他语言而不是 Objective-C/Swift 。例如,Cycript 无法访问 C/C++ 代码,因此无法修改以这些语言编码的环境。
实际上,如果您使用跨平台工具来开发您的应用程序(如Cocos2d、Unity、...) ,您可能会受到保护免受此类基于调试器的攻击(如 Cycript、GDB),因为这些跨平台开发工具中的大多数仅使用Objective-C / Swift 用于应用程序启动时的第一步,它们以您开发的任何语言编译您的应用程序逻辑(例如,用于 Cocos2d 和 Unity 的 C++)。