2011-09-29 47 views
3

我有一个要求,我想要将索引与文件(以某种格式)相关联。我想知道我是否可以进行任何ELF操作,并且仍然保证一致性得以保持,因此该文件在Linux上正常工作。这里的想法是创建一个文件格式,可以通过一个特定的API [自定义]来查询索引。ELF格式操作

a)是否可以修改ELF头来存储索引(如上所述)。

b)如果是的话,过程是什么?

+0

我想你误解了:ELF是一个可执行文件的文件格式。除非这两个文件中的一个文件是可执行文件,否则您会问错。 –

+0

你很模糊。你能澄清一下你想要索引/你想要保留在索引中的信息吗?修改ELF当然是可以的,但是您提供的信息越多,获得的帮助就越多。 –

+0

您是否允许重新编译ELF文件?或者你必须使用现有的? – rodrigo

回答

7

您可以添加一个新的ELF部分,包含任何想要的数据到现有的可执行文件。例如

$ echo 42 > /tmp/index 
$ objcopy --add-section .my_index=/tmp/index /bin/ls myls 
$ objdump -s myls | tail 
. 
. 
. 

Contents of section .my_index: 
0000 34320a        42.  

然后,您可以找出使用libelf来读取数据的位置。

+0

这是一个梦幻般的答案。人们如何直接与'sigjuice'连接? –