123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Format of an ELF executable file
- #define ELF_MAGIC 0x464C457FU // "\x7FELF" in little endian
- // File header
- struct elfhdr {
- uint magic; // must equal ELF_MAGIC
- uchar elf[12];
- ushort type;
- ushort machine;
- uint version;
- uint entry;
- uint phoff;
- uint shoff;
- uint flags;
- ushort ehsize;
- ushort phentsize;
- ushort phnum;
- ushort shentsize;
- ushort shnum;
- ushort shstrndx;
- };
- // Program section header
- struct proghdr {
- uint type;
- uint off;
- uint vaddr;
- uint paddr;
- uint filesz;
- uint memsz;
- uint flags;
- uint align;
- };
- // Values for Proghdr type
- #define ELF_PROG_LOAD 1
- // Flag bits for Proghdr flags
- #define ELF_PROG_FLAG_EXEC 1
- #define ELF_PROG_FLAG_WRITE 2
- #define ELF_PROG_FLAG_READ 4
|