我研究了相当多,无论是在SO上,还是在各地的google-ing上,但我似乎找不到一个关于用Objective-C编写的iPhone/iPad应用程序的代码混淆的直接答案。
我的问题是:
发布于 2011-04-06 03:17:12
对于Objective-C,似乎没有代码混淆器。但让我们暂时假设它确实存在。
苹果可能不会拒绝一个模糊的应用程序,只要它不崩溃。主要的问题是:混淆的意义是什么?通常,你想要混淆代码来保护你的知识,例如,如果你的程序使用复制保护,你想让潜在的黑客更难破解,或者如果你使用一些高级算法,你不希望业务竞争对手能够反编译它。
版权保护已经在iOS上得到了保护。虽然通过越狱可以复制和运行一个普通的应用程序,但我要说的是,这样做的实际用户数量相当少(至少比PC和Mac等“常规”电脑上的用户要少得多)。你认为盗版是一个需要混淆的大问题吗?
如果你确实有重要的知识需要保护,那么模糊处理可能是值得的。混淆有它的缺点:你不能再调试你的模糊应用了。崩溃报告将是无用的。
您可能还想阅读Obfuscating Cocoa这篇文章。
回到似乎没有混淆的事实:你可以做的是这个技巧:假设你有一个像这样的头:
@interface MyClass : NSObject {
}
- (void)myMethod;
你可以像这样做一个简单的混淆:
#ifndef DEBUG
#define MyClass aqwe
#define myMethod oikl
#endif
@interface MyClass : NSObject {
}
- (void)myMethod;
通过这种方式,您仍然可以在源代码中使用有意义的符号,但编译器会在不进行编译以进行调试时将其变成“垃圾”。
发布于 2012-02-17 14:51:50
发布于 2013-10-09 16:44:29
除了前面的答案,现在有几个第三方工具提供了一定程度的混淆和完整性保护,包括:
它们的功能各不相同,包括:
所有这些工具都非常昂贵,并不是没有问题,所以你真的需要一个需要高度完整性的应用程序才能考虑它们,例如银行或DRM非常重要的地方。
对于这些类型的应用程序,您还需要熟练的渗透测试人员来确保您的应用程序不会以其他方式暴露,因为这些工具通常与使用它们的人一样好,而且还有其他操作系统漏洞需要缓解,这些工具无法解决这些漏洞。
https://stackoverflow.com/questions/5556849
复制相似问题