gpt4 book ai didi

linux - 将任意数据附加到 ELF 文件是否违反了 ELF 规范?

转载 作者:IT王子 更新时间:2023-10-29 00:50:16 26 4
gpt4 key购买 nike

我想向 ELF 文件中添加一些信息,但理想情况下需要以一种程序可以轻松读取此信息的方式来完成,而无需理解 ELF 或使用普通标准语言库之外的工具。我正在考虑将这些数据简单地附加到 ELF 文件的末尾(使用某种标记来指示数据的开始,以便读取程序可以向后查找标记),但我想确保这不会'首先不要违反 ELF 规范。我对特定加载程序是否可以正常处理此类附加数据不感兴趣;我想知道 ELF 规范本身是否有任何保证,以便我知道不同的 ELF 兼容加载程序会对此感到满意。

我看到以前有人问过这样的问题,但要么假设这个附加没问题,要么没有直接回应:

据我所知,ELF 规范在这里:

我无法通过一些搜索来确定我想要的属性是否被该规范明确允许。

最佳答案

规范并没有真正说明任何关于它的内容,因此有人可能会争论“拥有尾随数据是未定义的行为”。另一方面,ELF 规范对其期望相当明确:“节和段没有指定的顺序。只有 ELF header 在文件中具有固定位置。”,这提供了足够的空间以一种或另一种方式嵌入数据,使用节或不使用节 [这就是未引用的数据!]。

这种“数据自由”至少从 1980 年代末就开始被利用;考虑“自解压文件”,其中通用解包代码 stub 在尾随数据部分上松散。

事实上,即使在不可执行的数据格式中,例如 RIFF 和 PNG,您也可以找到这种隐含的特征。当然,并非所有格式都允许这样做;特别是那些数据被定义为运行到 EOF 而不是存储在某些 header 中的固定长度的数据。 (考虑 ZIP:附加数据是不可能的,但是 prepending 是可以的,这就是导致 EXE-ZIP 被两个(未修改的)解压缩程序读取的原因 操作系统。)

像这样使用未引用的数据只有一个缺点:读取和保存文件时,您可能会丢失这些数据。

关于linux - 将任意数据附加到 ELF 文件是否违反了 ELF 规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com