Let's look into the other structures of the Elf file after this identification number.
We have type E.
Type E type defines the purpose of the file.
You have code file, dynamic file, executable and relocatable file which you can also find here.
So the values are defined.
If it is value zero it means it is a uh not a file type uh no file type.
Relocatable has different value.
Executable dynamic and code file are having different values.
So this type is uh here.
Then you have machine machine which all architecture.
So if you see a lot of architectures are supported uh, for Elf files um architecture supported AMD
and x86 architecture all this architectures.
So a lot of architectures, nearly so many architectures are supported.
250 uh, it has support for like depending on the structure rate, how much uh, it is a elf 30 two
half half is uh for 32 bit it will be 16 bit.
And so two power 16 is how many we can support in a elf.
Uh, file.
Uh, I mean that many architectures we can support in an Elf file.
Then you have version field.
This version is used to provide information about the version of the Elf object file.
Then you have entry field, uh, which is a pointer, uh, which is an address pointing to the start
of the virtual address where my the first instruction is present, where I start executing the first
instruction.
Then I have, uh, program header and section where my program header is present, uh, offset from
where the program header is present.
This is the program header offset section header offset any processor specific flags if I am using.
And what is the size of this current Elf header and what is uh, now we have a program header table
offset.
What is the size of this program header table entry for each entry and how many we have is present here.
FF stands for Program header, S Hans stands for section header and how many section headers we have.
What is the size of each section header entry and what is the size.
Uh what is the index of section header string table.
So this is all information is present in the Elf header.
So to conclude elf header has information about what is the type of the binary, whether it is an executable
or uh, linkable relocatable or a core file or a ISO file.
What machine?
Uh, we are for it is compiled for AMD arm.
And what is the entry point of the address?
What is the version?
What is the Abi and how many program headers it has?
How many section headers it has?
What is the offset of the program header?
What is the offset of the section header.
And very important is like Elf, Ada will be placed at the starting of the file so anyone can easily
pass it using Elf command.