Манипулирование форматом ELF - PullRequest
4 голосов
/ 29 сентября 2011

У меня есть требование, при котором я хочу связать index с файлом (в определенном формате). Мне было интересно, смогу ли я сделать какие-либо манипуляции с ELF и при этом убедиться, что согласованность сохраняется, поэтому файл отлично работает на Linux. Идея здесь состоит в том, чтобы создать формат файла, который может быть запрошен определенным API [самоопределяемым], чтобы получить индекс.

a) возможно ли изменить заголовок ELF для хранения индекса (упомянутого выше).

б) если да, каков процесс?

1 Ответ

7 голосов
/ 29 сентября 2011

Вы можете добавить новый раздел 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.

...