Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ELF format manipulation

Tags:

c

linux

kernel

elf

I have a requirement where I want to associate an index with a file(in a certain format). I was wondering if I can do any ELF manipulation and still ensure that, consistency is maintained so, the file works fine on linux. The idea here is to create a file format which can be queried by a certain API[self-defined] to get me the index.

a)is it possible to modify the ELF header to store the index(mentioned above).

b)if yes, what is the process?

like image 730
Umashankar Das Avatar asked Feb 23 '23 20:02

Umashankar Das


1 Answers

You can add a new ELF section with whatever data you want to an existing executable. e.g.

$ 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.    

You can then figure out where to read this data from using libelf.

like image 161
sigjuice Avatar answered Feb 26 '23 21:02

sigjuice