据我所知,很容易破解Mach-O可执行文件,我只想对“类转储”工具进行简单的保护。是否有任何工具或XCode插件可以将所有类名称和类函数更改为不可读的内容(如符号和数字的随机组合)?
坦率地说,这就是我需要的所有保护。
答案 0 :(得分:6)
我在this blog post中写了一些关于此内容的内容,但总结一下:您可以通过在运行时注册方法来避免让方法出现在class-dump
中,或者只是将它们保留为函数。
如果真的所有你要做的是重命名类/方法,你可以use the tops
command-line tool或Xcode的重构功能。
答案 1 :(得分:1)
您在寻找Objective C obfuscators吗?
This page对混淆Cocoa 进行了很好的讨论。
答案 2 :(得分:1)
你真的可能不想打扰这个。混淆不会阻止确定的黑客对真正有价值的算法进行逆向工程。休闲用户不会打扰,所以你很可能做很多工作而没什么附加价值。正如@mvds在对你的问题的评论中指出的那样,NIB连接将背叛许多类的目的,并且一个坚定的黑客可以使用dtrace / Instruments.app来跟踪消息以发现他们需要的大部分内容。
任何真正有价值的知识产权都需要受到比混淆更强大的东西的保护,并且应该用C / C ++编写,同时拥有合法的专利和版权保护(以及执法)。
答案 3 :(得分:0)
如果您还没有这样做,您至少可以通过在Xcode构建设置中启用“部署后处理”和“剥离链接产品”来删除某些不必要符号的可执行文件。 (或者直接使用strip
工具。)总比没有好。