繁体   English   中英

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

[英]How to extract NSString value from executable

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

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

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

  1. 解密二进制文件。 这需要一个越狱的设备,但它是微不足道的(有很多工具可以做到这一点,以及intarwebs上的教程)
  2. 将解密的二进制文件移至桌面
  3. 运行所需的任何工具。 strings等都可以使用。 IDA ProHopper将反汇编二进制文件,不仅显示二进制文件中的C字符串,还显示访问它的代码。
  4. 此时,您拥有该应用程序的所有用户都依赖的加密密钥。
  5. ...
  6. 利润!

从二进制文件中提取C字符串是任何攻击者都会做的第一件事。 不建议将敏感信息(例如加密密钥)存储在二进制文件中。 不幸的是,没有很多安全的方法可以将加密密钥获取到客户端。 评估不同方法的风险,并确定您适合的暴露水平。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM