I am trying to learn how ELF files are structured and probably how to make one manually.
I am working on aarch64 Linux OS, the ELF files I am inspecting are of elf64-littleaarch64
format.
Also I try to learn by myself, however I got stuck with some questions...
- When I do
xxd code
, the first number in each line of the output specifies the address of bytes in the file. But whenobjdump -D code
, the first number is something like4000b0
, however corresponds to000000b0
inxxd
. Why is there a four at the beginning? - In
objdump
, the bytecode is for example11000a94
, which 'means'add w20, w20, #2
in assembly. I know, that11
is the opcode, but what does000a94
mean? I thought, it should be the parameters, but I am adding the value 2 and can't find the number 2 in it.
If you have a good article to read, or can help me explain this, I will be very grateful!