Chapter 11
- For example:
Mach-O: MacOS and iOS
a.out: Simplifier gcc output
COFF: Older Unix executable format
PEF: PowerPC BE/OS and MacOS classic
There are plenty!
.text
: Usually the section that holds the executable instructions.debug
: Usually holds the debugging symbols.plt
,.dynamic
,.got
: Sections that hold the necessary information for the linker to solve the external symbols (functions and data that come from external libraries). Reading about the linking mechanism in elf is a very good idea!- SPI1
- Let's start with the strange string. When you look into how strings are stored in memory, you think of them as a list of characters, one after the other, in the order of growing memory addresses. This seems logical since you access them by incrementing a pointer. The thing is that the endianness (the direction a CPU stores numbers in its registers) can actually matter. What if I told you to break the string into blocks of four characters and read them in reverse?
"...