6

Ho appena letto degli scostamenti delle istruzioni che sono in un file sul disco, l'RVA e il VA una volta caricati nella memoria. Ho anche letto che se un file PE è stato caricato nella memoria esattamente come era nel disco, l'RVA sarebbe lo stesso degli offset di file (e che sarebbe molto insolito che ciò accadesse)."Indirizzi virtuali relativi", relativi a cosa?

Il mio dubbio è - in circostanze normali, a che cosa sono relativi questi RVA? L'inizio di quella particolare struttura di dati PE?

Modifica: per struttura dati PE intendo: intestazione PE, intestazione DOS, stub DOS, intestazione file PE, intestazione opzionale Immagine, tabella di sezione e directory dati.

risposta

10

RVA è l'indirizzo relativo all'indirizzo di base dell'immagine, dopo essere stato caricato in memoria.

Il MS PE/COFF specification dice:

indirizzo virtuale relativo. In un file immagine, l'indirizzo di un elemento dopo che è stato caricato in memoria, con l'indirizzo di base del file immagine sottratto da esso. L'RVA di un oggetto si differenzia quasi sempre dalla sua posizione all'interno del file su disco (puntatore del file).