如何混淆项目中的所有代码 IOS
How to obfuscate all code in project IOS
我在混淆项目代码以保护源代码时遇到问题。
- 是否可以混淆所有项目源代码。
如果是,请指导我。
Objective-C 代码无法 100% 混淆。有一些 open source and some commercial 工具会混淆 class 名称、自定义方法和变量,但请注意,它们很容易破坏和崩溃您的应用程序。
例如,如果您在情节提要中使用自定义视图控制器 class,并且您的代码混淆会更改源文件中的 class 名称,但不会更改情节提要中的名称,从而实例化该自定义视图控制器将使您的应用程序崩溃或至少无法实例化您的自定义视图控制器。
同样,Objective-C 变量绑定即使不是不可能也可能很困难。 Objective-C 从头开始设计为可检查和可修改。显然所有的 UIKit delegate/protocol 方法都不能被混淆。 viewDidLoad
将始终被称为 viewDidLoad
。
祝你好运!
编辑:
似乎有一个 LLVM 替代品可以为您处理代码混淆,查看 Obfuscator-LLVM Wiki。
我在混淆项目代码以保护源代码时遇到问题。
- 是否可以混淆所有项目源代码。 如果是,请指导我。
Objective-C 代码无法 100% 混淆。有一些 open source and some commercial 工具会混淆 class 名称、自定义方法和变量,但请注意,它们很容易破坏和崩溃您的应用程序。
例如,如果您在情节提要中使用自定义视图控制器 class,并且您的代码混淆会更改源文件中的 class 名称,但不会更改情节提要中的名称,从而实例化该自定义视图控制器将使您的应用程序崩溃或至少无法实例化您的自定义视图控制器。
同样,Objective-C 变量绑定即使不是不可能也可能很困难。 Objective-C 从头开始设计为可检查和可修改。显然所有的 UIKit delegate/protocol 方法都不能被混淆。 viewDidLoad
将始终被称为 viewDidLoad
。
祝你好运!
编辑:
似乎有一个 LLVM 替代品可以为您处理代码混淆,查看 Obfuscator-LLVM Wiki。