Iphone 如何对目标C类进行加密

Iphone 如何对目标C类进行加密,iphone,encryption,Iphone,Encryption,我想在我的iphone游戏中加密一些处理OpenFaint数据的obj c类和处理分数的类 我听说有一种方法可以加密这些数据,作为另一种安全级别,至少足以阻止一些人破解这些数据,在越狱的iphone上伪造分数,然后在排行榜上发垃圾邮件 如何做到这一点,有哪些好的技术可以保护这些数据并阻止一些人试图欺骗数据 感谢加密类遇到了任何DRM或类似安全系统都存在的“用钥匙运送锁”问题 您要查找的是自修改代码,其中代码要么稍后由应用程序加载和解密,要么以二进制形式显示为机器代码,并在运行时由应用程序拥有的密

我想在我的iphone游戏中加密一些处理OpenFaint数据的obj c类和处理分数的类

我听说有一种方法可以加密这些数据,作为另一种安全级别,至少足以阻止一些人破解这些数据,在越狱的iphone上伪造分数,然后在排行榜上发垃圾邮件

如何做到这一点,有哪些好的技术可以保护这些数据并阻止一些人试图欺骗数据


感谢

加密类遇到了任何DRM或类似安全系统都存在的“用钥匙运送锁”问题

您要查找的是自修改代码,其中代码要么稍后由应用程序加载和解密,要么以二进制形式显示为机器代码,并在运行时由应用程序拥有的密钥进行修改


请注意,您可能会创建一些非常微妙和有趣的bug,并且您的方法将被绕过(这可能需要一些人多花一天时间)

对编译后的代码进行真正的加密可能比它的价值更麻烦。您必须将要解密的代码隔离到动态库中,并在内存中解密后手动加载库。当与iOS一起使用时,动态库和其他在运行时修改代码的方法都是苹果公司不赞成的

使用Objective-C,您基本上在代码中内置了标题。这使得在应用程序中进行深入研究变得更加容易。在C语言中,任何你能做的事情,符号可能会被剥离,都会稍微难以阅读。您还可以使用#define稍微混淆类和方法名称。这离加密还差得远,但更容易实现,也不太可能引入古怪的bug

#define MyNicelyNamedClass somegarblegarble
#define myNicelyNamedMethod othergarblegarble

@interface MyNicelyNamedClass

-(id) myNicelyNamedMethod;

@end
对于开发人员来说,这是一种相对轻松的方法,可以使他们的Objective-C代码对其他人不那么明显。它与javascript混淆一样有效,也就是说,这是一个小小的障碍,可以阻止许多偶然的攻击者


如果你选择了有意义但有误导性的名字,而不是直接的垃圾,你甚至可能会欺骗某人花上几个小时去挖掘错误的代码。你永远不会知道,但这是一个令人满意的想法。

。。。或者如果您大量使用KVO和KVC。。。或者您使用界面生成器。。。或者如果你使用任何其他内省重机制。。。别忘了撤销崩溃日志中的混淆。