c - Hvorfor har vi brug for omlægning for at blive PE-fil gyldig?

Indlæg af Hanne Mølgaard Plasc

Problem



Når vi dumper PE fra hukommelse (MODULE/Process), hvorfor den ikke udføres uden omlægning?


Hvilke ændringer i PE i hukommelsen, som gør det umuligt at udføre direkte?

Bedste reference


Kortlægning er nødvendig før udførelse, fordi du ikke kan forudsige adresserne på hver DLL og andre ressourcer i hukommelsen, samt den resulterende adresse på dynamisk allokeret hukommelse i dit program.
PE-filoverskriften fortæller operativsystemet, hvordan man fordeler .text og .data hukommelsessegmenter.


Tilbage i 80'erne og begyndelsen af ​​90'erne kan du huske .COM filer. Disse hvor kopi af hukommelse, der blev kopieret og henrettet (\% EIP pegede på det s adresse) lige, fordi der var begrænset til 64kb .text data.