I was reading about mapped and unmapped PE format, and how the alignment between sections changes after loading it into memory and that caused two question for me:
is the relocation table used before the PE is loaded into memory? (just before loading)
how does the loader deal with relative addresses and offsets after loading it into memory considering the offsets between sections changes? for example if i have a instruction that addresses another section using relative addresses (offset from its own location), but not an absolute address, then does the loader has to deal with these relative addresses as well? if so, then this means the relocation table fixes instruction that don't use absolute addresses as well?