非PIE二进制 - 可执行文件'<xyz>'不是位置独立可执行文件</xyz>

时间:2013-06-05 03:04:29

标签: ios binaryfiles

已收到所有最近提交的iOS应用程序的回复。几个帖子已经涵盖了“如何解决这个问题”。

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

1 个答案:

答案 0 :(得分:-1)

我相信Position Independent Executable是一个程序,可以放在任何内存地址并仍然运行。因此,通常所有数据都由相对存储器地址引用。如果您试图引用固定的内存地址,那么如果内存地址被加载到内存中的其他位置,则该内存地址可能完全在程序之外。

我不知道PIE的具体细节是什么。