如何从可执行文件中提取NSString值

时间:2014-08-14 22:52:48

标签: ios executable commoncrypto

我正在使用CommonCrypto库加密iPhone应用程序的数据。数据是应用程序的本地数据。使用NSString在代码中对加密密钥进行硬编码。

我想知道是否有办法从app可执行文件中访问此NSString的值。我知道代码将是可执行的形式,但最后NSString必须在应用程序的某个地方以纯文本格式存储该值。例如,使用iExplorer访问app文件夹将提供对可执行文件的完全访问权限。

1 个答案:

答案 0 :(得分:0)

假设应用程序已从应用程序商店下载到设备上......

  1. 解密二进制文件。这需要一个越狱设备,但它是微不足道的(有很多很多工具可以做到这一点,以及关于intarwebs的教程)
  2. 将解密的二进制文件移至桌面
  3. 运行您想要的任何工具。 strings等等都会奏效。 IDA ProHopper将反汇编二进制文件,不仅显示二进制文件中的C字符串,还显示访问它的代码。
  4. 此时,您拥有此应用程序的所有用户都依赖的加密密钥。
  5. ...
  6. 利润!
  7. 从二进制文件中提取C字符串是任何攻击者都会做的第一个事情之一。建议不要在二进制文件中存储敏感信息,例如加密密钥。不幸的是,没有多少安全的方法可以获得客户端的加密密钥。评估不同方法的风险,并确定您感到满意的接触程度。