Il base address è un indirizzo che funge da punto di riferimento per altri indirizzi. Ad esempio potrebbe indicare l'inizio di un programma, o nello specifico l'istruzione per definire un oggetto.
Tu stai cercando una soluzione alla casualizzazione dello spazio degli indirizzi (Address Space Layout Randomization - TL;DR: vuoi trovare l'indirizzo di memoria nuovo al riavvio dell'eseguibile), ed il tuo programma ti sta offrendo un meccanismo semplificato per trovare un indirizzo statico.
Hai inserito nel programma un indirizzo per la scansione, e viene eseguita la scansione di questo indirizzo per trovare tutti i puntatori che puntano ad esso. Non si ferma finchè non trova un indirizzo statico o un indirizzo relativo all'indirizzo di base di un modulo caricato dal programma.
Insomma, penetra a forza bruta in tutti i percorsi dei puntatori in base ai parametri che inserisci. Ci sono solo due motivi per cui lo utilizzi: 1.) Non hai idea di quello che stai facendo e non sai cosa sia il reverse engineering 2.) Sei troppo pigro, ma in questo caso non dovresti fare quello che stai facendo.
Di conseguenza quello è un puntatore multilivello ed è:
Tu stai cercando una soluzione alla casualizzazione dello spazio degli indirizzi (Address Space Layout Randomization - TL;DR: vuoi trovare l'indirizzo di memoria nuovo al riavvio dell'eseguibile), ed il tuo programma ti sta offrendo un meccanismo semplificato per trovare un indirizzo statico.
Hai inserito nel programma un indirizzo per la scansione, e viene eseguita la scansione di questo indirizzo per trovare tutti i puntatori che puntano ad esso. Non si ferma finchè non trova un indirizzo statico o un indirizzo relativo all'indirizzo di base di un modulo caricato dal programma.
Insomma, penetra a forza bruta in tutti i percorsi dei puntatori in base ai parametri che inserisci. Ci sono solo due motivi per cui lo utilizzi: 1.) Non hai idea di quello che stai facendo e non sai cosa sia il reverse engineering 2.) Sei troppo pigro, ma in questo caso non dovresti fare quello che stai facendo.
Di conseguenza quello è un puntatore multilivello ed è:
[[[[["TestDrive2.exe"+00C...]+11C]+6C]+164]+8]+60
, dereferenziandolo (con *p
) avrai 345 (valore di 0x17B64CB4
). 0x17B64CB4
è l'indirizzo al quale punta il puntatore ((void *)p
)."TestDrive2.exe"+00C...
è il base address di un oggetto.