The memory of the static contents of PE files
In Chapter 1, From Source to Binaries – The Journey of a C Program, we mentioned the process by which the compiler produces a complete executable program. It is clear that the C/C++ source code, after being compiled, is mainly split into blocks and saved. These blocks must be placed on the correct address during dynamic execution. Then, we can start figuring out what the linker would produce as an executable file. Figure 2.1 shows a simplified PE static structure that you need to understand:
Figure 2.1 – Simplified PE static structure
The author has listed some of the key fields to which the application loader will refer. First, the entire memory arrangement starts with the DOS Header area (IMAGE_DOS_HEADER
), where.e_magic
must always be equal to the MZ string (that is, IMAGE_DOS_SIGNATURE
), which is a valid DOS Header. Most of the fields in the DOS structure are no longer used in the current...