I have read document pecoff_v83
of Microsoft. In The .reloc
section part, I have read:
The Fix-Up Table contains entries for all fixups in the image. The Total Fix-Up Data Size in the Optional Header is the number of bytes in the fixup table. The fixup table is broken into blocks of fixups. Each block represents the fixups for a 4K page. Each block must start on a 32-bit boundary.
And, I knew that each block contain: Page RVA and Block Size. Each Block size contain: Type and offset.
I used peview
:
I have a few questions:
"Each block must start on a 32-bit boundary" - I don't understand that, can you explain it?
Do PE files use
IMAGE_BASE_RELOCATION
to work?From this SO question ('So most of the binary is composed of reloc table?') :
If your program makes a frequent access to global variables and constants, it will have a huge relocation table because theres so much places that the loader has to update
How does the loader use relocation table and update it?