【问题标题】:Objective-C decompilation protection of string value [duplicate]字符串值的Objective-C反编译保护[重复]
【发布时间】:2016-08-24 11:03:51
【问题描述】:

在我的应用程序中,我存储了一个用于加密和解密数据的密钥,它存储为一个字符串定义

#define ClientSecret @"123456"

当应用被反编译时,这个值很容易获得......如何在最好的扩展范围内保护它?

值不需要是定义...是否有一些推荐的方法来确保这些值的安全性,这些值在代码中是硬衬的?

这个问题适用于 iOS 和 OSX

【问题讨论】:

  • 这是 Objective-C 相关的,不是 .Net
  • 也不是可能的重复项。它是 C++。此外,答案中讨论的概念,尤其是第二个概念,适用于 所有 可执行文件,无论它们是用什么语言编写的。
  • 但我想要一个与 Objective-C 相关的答案,比如提供的 mortgy,而不是一般的谈话
  • 重复答案中的答案说明了一切。简而言之,不要这样做。你只是在创造一种安全的假象,而不是真正的安全(通过默默无闻的安全

标签: objective-c cocoa cocoa-touch obfuscation decompiling


【解决方案1】:

UAObfuscatedString 可能有助于隐藏您的密钥。但在某些时候,秘密值必须可用。例如。如果您的密钥是 API 密钥,则必须将其传递给该 API,并且有人可以在 API 调用上设置断点并读取那里的值。

【讨论】:

  • 我将链接更改为我认为您可能想要的,尽管您可以仔细检查...
  • 我会注意 UAObfuscated 字符串,它是开源的,恶意用户可以找到 UAObfuscatedString 的代码在每个方法中放置断点并查看调用顺序。我会检查一下:splinter.com.au/2014/09/16/storing-secret-keys
猜你喜欢
  • 2012-12-16
  • 2017-03-26
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2013-07-15
  • 2017-06-05
  • 2011-12-29
相关资源
最近更新 更多