如何删除 iOS 应用程序附带的敏感信息

Posted

技术标签:

【中文标题】如何删除 iOS 应用程序附带的敏感信息【英文标题】:how to erase sensitive information shipped with iOS app 【发布时间】:2012-08-19 04:08:55 【问题描述】:

我是一名新的 ios 开发人员,正在开发一个带有装扮项目的应用程序,该项目没有典型的编译选项,如调试、发布、分发。所以我必须自己配置xcode的编译选项。这给我带来了一些困难。

该项目的源代码非常敏感,因为应用程序的竞争对手会对源代码信息感兴趣。要删除与源代码信息有关的信息,我需要帮助来配置 xode 的编译选项。例如,我可以通过使用仪器分析这个应用程序来找到函数的名称,即使我设置了关闭 xcode 的“生成调试符号”的选项,我也不知道如何删除它。

如何删除与源代码有关的全部信息?任何帮助表示赞赏。谢谢。

【问题讨论】:

如果你是在objective-c中开发,你不能摆脱iVar布局和方法等实现细节。你唯一能做的就是混淆,这本身就会增加问题。 把它写在brainf**k中,那真的会搞砸! 因为总是有可能“检查你的代码”——我发现的唯一可行的选择是使用一个相当复杂的、很难弄清楚的底层数据结构——同时影响应用程序的逻辑。即使可以看,理解哈希表中的索引以及最终在用于控制代码的某个阶段索引其他表的复杂结构也很难理解。在大多数情况下,理解它所花费的时间不仅仅是重新创建它。 ps在里面放了一些奇怪的强制+自制加密——这会让人很困惑…… 【参考方案1】:

看起来您正在尝试obfuscate 您的代码。看看 this question 关于混淆 Objective-C 代码的内容。混淆的问题在于,如果有人真的愿意,可以将其反转,所以它可能比它的价值更麻烦。

【讨论】:

谢谢大家的回答。我的项目是用 c/c++ 编写的。正如您所建议的,混淆是一个很好的解决方案。但我认为完全摆脱调试信息对我来说可能就足够了。但是我不知道用 xcode 来做。

以上是关于如何删除 iOS 应用程序附带的敏感信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 应用程序中存储机密、密钥、令牌、加密密钥等关键敏感信息

从内存中删除敏感信息

如何在客户端二进制文件中保留敏感信息?

iOS有部分应用一直窥探剪切板上的敏感信息

我应该如何保护我的 iOS 应用程序中的敏感内容不被截图? [复制]

学习笔记:如何阻止Web应用存储敏感数据