如何混淆iOS二进制文件。

如何混淆iOS二进制文件。,ios,objective-c,reverse-engineering,ida,Ios,Objective C,Reverse Engineering,Ida,嗨,我只是想知道你怎么能在iOS二进制中混淆函数 如果您尝试使用诸如ida之类的工具反转iOS二进制文件,您将看到部分二进制文件具有模糊功能,例如全部或部分命名为sub_xxxxxxxx,但另一部分具有人类可读的功能 有人说,将这些行添加到标题顶部,而不做进一步解释: #define SecurityClass ah7p #define checkCopyProtection xcyc 保护应用程序安全的方法有哪些 对不起,我问了一个愚蠢的问题,但是我是新的,我没有回答你的问题。 < P>如果

嗨,我只是想知道你怎么能在iOS二进制中混淆函数

如果您尝试使用诸如ida之类的工具反转iOS二进制文件,您将看到部分二进制文件具有模糊功能,例如全部或部分命名为sub_xxxxxxxx,但另一部分具有人类可读的功能

有人说,将这些行添加到标题顶部,而不做进一步解释:

#define SecurityClass ah7p
#define checkCopyProtection xcyc
保护应用程序安全的方法有哪些


对不起,我问了一个愚蠢的问题,但是我是新的,我没有回答你的问题。

< P>如果你只关心混淆方法名,那么最简单的方法就是用C或C++写你的应用程序的相关部分。例如,您可以改写<代码> SecurityClass <代码>作为C++类,而不是ObjytoC类。这不会使您的代码成为逆向工程的证据,但至少会提高一点标准。(注意:从软件工程的角度来看,我并不是说这是正确的做法)


如果您需要混淆代码,那么您正在搜索一个可以做到这一点的工具。有几种这样的工具,既有商业的也有免费的。实现这一点的一个项目是。

有几种方法可以混淆iOS二进制文件

  • 名为llvmobfuscate()的开源编译器在编译过程中有一些很好的模糊特性。您正在用该编译器替换默认编译器
  • 当然,对于Windows,VMWare或TheMedia可以进行后期处理,但事实并非如此
  • 除此之外,我只知道还有一个是Liasoft antispy。它是一个非常先进的反分析工具包,允许您在编译过程中使用混合ObjuleC和C++代码加密函数和更多。()

    不确定其中一个是否适合你。除此之外,由于Objective-C是一种包含大量元数据的编译语言,所以您对这些内容非常迷茫


    希望我能帮助你,这是我的第一篇文章

    我认为在objective-c上使用模糊处理是不明智的,因为它会破坏很多东西,比如kvc/协议正常运行。。。为什么需要这个呢?Objective-C是动态语言的一个极端,无论有无混淆,都非常容易反编译。编译器不允许您修改方法的编译方式,从长远来看,您遇到的所谓模糊处理黑客是无法维护的(说真的,必须使用预处理器用模糊的垃圾名称重写几乎每个符号是疯狂的)。tl;博士,你不能完全去掉Objective-C二进制文件的Objective-C属性。总会有类和方法信息存在,可以让任何有足够空闲时间的黑客知道。CodaFi谢谢你的回答,但相信我,任何黑客都可以通过十六进制编辑和发现有趣的点,轻松修改你的应用程序,而不会造成混淆。当你从itunes下载任何应用程序时,它都会被加密,但是解密并清楚地看到它的功能是否是人类可读的并不难。这就是为什么我需要使用模糊处理的原因选择一种不同的语言。您看到的所有这些sub_xxx函数都不是由Objective-C编译器生成的。谢谢CodaFi!再次感谢:)这涵盖了几乎所有可用的开箱即用解决方案。滚动您自己的模糊处理也可能是一个解决方案,当您这样做时,请记住您可能会在代码库中引入的步骤学习曲线和维护债务。