如何混淆iOS二进制文件。

时间:2014-04-02 04:35:01

标签: ios objective-c reverse-engineering ida

嗨,我只是想知道如何在iOS二进制文件中混淆函数?

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

有人说,将这些行添加到标题的顶部,无需进一步解释:

#define SecurityClass ah7p
#define checkCopyProtection xcyc

用于保护您应用的方法有哪些?

对于这个愚蠢的问题感到抱歉,但我是新来的,最后没有回答解释我的需要。

2 个答案:

答案 0 :(得分:1)

有两种混淆iOS二进制文件的方法。

  1. 名为llvm-obfuscate(https://github.com/obfuscator-llvm/obfuscator/wiki)的开源编译器,具有一些不错的功能,可在编译期间进行混淆。您正在用该默认编译器替换它。
  2. 当然有Windows的VMWare oder Themdia可以发布进程,但事实并非如此。

此外,我还知道另一种是Liasoft反间谍软件。这是一个非常高级的反分析工具包,使用混合的Objective-C和C ++代码,您可以在编译过程中对函数进行加密以及更多操作。 (https://www.liasoft.de/en/products/antispy/

不确定其中之一是否适合您。除此之外,由于Objective-C是一种包含大量元数据的编译语言,因此您很迷失。

希望我能为您提供帮助,这是我的第一篇文章。

答案 1 :(得分:0)

如果您只关心模糊方法名称,那么最简单的方法是用C或C ++编写应用程序的相关部分。例如,您可以将SecurityClass重写为C ++类而不是Objective-C类。这不会使你的代码反向工程证明,但它至少会提高一点。 (注意:我不是说从软件工程的角度来看,这是正确的做法)。

如果您需要混淆代码,那么您正在寻找可以执行此操作的工具。有几种这样的工具,包括商业和免费的。完成这项工作的一个项目是obfuscator-llvm