我想给一个elf文件添加一个新的标志。这个标志应该在进程描述符中对内核可用。我的第一个想法是使用libelf,但不幸的是,在Ubuntu上似乎存在一个错误。Elfedit可能是一个不错的工具,但我没有找到Linux版本,特别是Ubuntu版本。
所以,我想知道是否有其他有用的工具可以向elf文件添加自定义标志?
非常感谢您的帮助!
所以,我想知道是否有其他有用的工具可以向elf文件添加自定义标志?
非常感谢您的帮助!
能够修改内核以利用新标记的人,可能不会问如何将标记添加到ELF库中。
那么,您打算如何让内核使用这个新标记?此标记的目的是什么?
由于您正在添加到标准libelf中,您不能修复Ubuntu的错误并让他们知道您已经这样做(使修复可供他们使用),尽管他们可能需要将其向上级传递。
(虽然这是一个老问题,但为了参考,我根据自己的经验写出了答案)
我建议在内存结构中读取elf文件,更改标志并使用您的内存结构加载进程内存。与错误修正相比,这种方法需要更少的努力。首先,请检查elf.c文件以获取elf、程序头和节头结构。您可以在您的结构中读取文件头,其中应该有三个结构成员用于elf、程序和节。从elf头开始在您的结构中读取。然后在elf头中给定的偏移量上读取程序头(对于所有程序头进行迭代)。以同样的方式,您可以通过节头读取所有节。将3个头结构封装在您自己的结构中还可以为您的其他结构成员提供额外所需的数据。