非 PIE 二进制 - 可执行文件 '<xyz>' 不是与位置无关的可执行文件



已收到所有最近提交的iOS应用程序的响应。"如何解决这个问题"已经在几个帖子中提到。我更好奇的是

  • 为什么现在发生这种情况而不是更早。
  • 它是一个PIE二进制意味着什么?
    从维基百科上我收集到它与各种应用程序之间的安全性有关,但我不清楚细节,以及为什么在这种情况下这是一个新的警告。
  • 我们是否将其作为非PIE二进制文件而冒任何风险?
    目前我们的应用支持>= 4.0 iOS,但是要构建PIE二进制,我们需要将其更改为>= 4.3。因此,到目前为止,我们已经避免了它。(顺便说一句,在&lt上是否有大量用户?4.3 iOS版本?)
  • 这有可能在不久的将来成为强制性的吗?

我认为一个独立于位置的可执行文件是一个程序,可以放在任何内存地址,仍然运行。所以通常所有的数据都是通过相对内存地址来引用的。如果你试图引用一个固定的内存地址,如果这个内存地址在内存的不同位置被加载,它可能完全在你的程序之外。

我不知道iOS的PIE具体是什么

相关内容

最新更新