Import Address Table in PE
As we mentioned in Chapter 1, From Source to Binaries – The Journey of a C Program, when a program is executed, the following procedure is performed. First, a new process is created and the static contents are loaded into it as a file map; the first thread of this process then calls the loader function located in ntdll.dll
. After the necessary corrections have been made to the PE module mounted in memory, the entry function of the EXE module can be executed and the program will run normally as a process.
In this chapter, we will look more closely at the application loader that comes by default with the operating system. This variation can be used to develop a program packer, fileless attacks, staged payloads (such as staged payloads in Metasploit), and so on.
Let’s go back to the basics first. Figure 5.1 is identical to Figure 1.3 and illustrates a program that will pop up a message with MessageBoxA
:
Figure 5...