2011-09-29 44 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'連接? –