bpa*_*100 66 iphone obfuscation store ipad
我已经研究了很多,无论是在SO还是google-ing到处,但我似乎找不到关于用Objective-C编写的iPhone/iPad应用程序的代码混淆的直接答案.
我的问题是这些:
Dar*_*ust 58
Objective-C似乎没有代码混淆器.但我们暂时假设一个确实存在.
Apple可能不会拒绝混淆的应用程序,只要它不会崩溃.主要问题是:混淆的重点是什么?通常,您希望对代码进行模糊处理以保护您的知识,例如,如果您的程序使用了复制保护,您希望使潜在的破解者更难,或者如果您使用某些高级算法,则不希望业务竞争对手成为能够反编译它.
iOS上已经完成了复制保护.虽然通过越狱可以复制和运行普通应用程序,但我会说实际执行此操作的用户数量相当低(至少比PC和Mac等"普通"计算机低很多).您是否希望盗版成为一个需要混淆的大问题?
如果你确实有重要的知识需要保护,那么混淆可能是值得的.混淆有其缺点:您无法再调试混淆的应用程序.崩溃报告将毫无用处.
您可能还想阅读文章Obfuscating Cocoa.
回到事实似乎没有混淆器:你可以做的就是这个诀窍:说你有这样的标题:
@interface MyClass : NSObject {
}
- (void)myMethod;
Run Code Online (Sandbox Code Playgroud)
你可以这样做一个廉价的混淆:
#ifndef DEBUG
#define MyClass aqwe
#define myMethod oikl
#endif
@interface MyClass : NSObject {
}
- (void)myMethod;
Run Code Online (Sandbox Code Playgroud)
这样你仍然可以在源代码中使用有意义的符号,但编译器会在不编译调试时将其变为"垃圾".
And*_*ndy 33
And*_*rew 13
除了早先的答案,现在有几个第三方工具可以提供某种程度的混淆和完整性保护,包括: -
它们的能力各不相同,包括: -
所有这些工具都非常昂贵,并且没有他们的问题所以你真的需要一个需要高度完整性的应用程序,以便考虑它们,例如银行业务或DRM非常重要的地方.
对于这些类型的应用程序,您还需要熟练的渗透测试人员,以确保您的应用程序不会以其他方式暴露,因为这些工具通常只与使用它们的人一样好,并且还有其他操作系统漏洞需要减轻工具不解决.