Witam
mam takie pytanko czy plik Exe aby na pewno relokuje kod czytalem sobie o budowie takowego i w oczy rzucilo mi sie cos takiego (To pole jest obecne w naglowkach sekcji):
"PointerToRelocations, ponieważ w plikach EXE wszystkie relokację zostają przeprowadzone na etapie linkowania, to pole to jest bezużyteczne i jest ustawione na 0."
Rzecz dziwna bo specyfikacja Exekow przewiduje w swojej strukturze sekcje .reloc zakladam ze to wlasnie tam powinna znalezc sie tablica relokacji.
Probowalem to nawet sprawdzic pod hexedytorem, napisalem sobie taki ktorki kodzik, aby zobaczyc wygladaja adresy w pliku.
.386
model flat
.data
dana dd 0
.code
start:
mov eax, dana
end start
Skompilowalem jako Win-Pe otworzylem HexEditem i co widze
A1 00 20 40 00
odpowiada to instrukcji mov eax, [402000h]
i mysle osbie ale kanal, to jednak nie widows w trakcie ladowania dodaje do entry point 401000h, ale linker.
Wlasciwie to szukam tylko potwierdzenia, lub zaprzeczenia na postawione przeze mnie pytanie Niepewnosc pozostawia istnienie sekcji .reloc, po co ja utryzmywac skoro wszystko wylicza itak linker. A moze jednak ona czemus sluzy.
Pozdrawiam