Description of the first few entries in GOT table
GOT[0] : The table’ s entry zero is reserved to hold the address of the dynamic structure, referenced with the symbol _DYNAMIC . This allows a program, such as the dynamic linker, to fi nd its own dynamic structure without having yet processed its relocation entries. This is especially important for the dynamic linker, because it must initialize itself without relying on other programs to relocate its memory image. On the 32-bit Intel Architecture, entries one and two in the global offset table also are reserved. ‘‘ Procedure Linkage Table’’ below describes them.
GOT[1] : as a “word of identifying information”. This identifying information is a pointer to the dynamic linker’s private structure describing the ELF object’s memory map. This information is potentially useful to a parasite in many ways, but not to this subversive linking implementation.
GOT[2]: is a pointer to a function within the dynamic link editor. This function provides the entry point into the run time linker’s symbol resolution procedures. This pointer is the key to locating the dynamic linker among the many memory maps of the process image. Locating which memory map range the pointer references into makes it possible to determine the load address of the dynamic linker.