Dichiaro il puntatore, e contemporaneamente lo inizializzo con l'indirizzo della variabile globale.
#include<stdio.h> int variabile=0xCACACACA;; int *puntatore=&variabile; void main(){ variabile=0xBABABABA; getc(stdin); }Ed ecco il dump in OllyDbg:
00247000 >CA CA CA CA 00 70 24 00 00 00 00 00 01 00 00 00 ÊÊÊÊ.p$..... ... 00247010 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 ... ... ... ... 00247020 >00 00 00 00 FE FF FF FF 01 00 00 00 FF FF FF FF ....þÿÿÿ ...ÿÿÿÿ 00247030 >FF FF FF FF 00 00 00 00 4E E6 40 BB B1 19 BF 44 ÿÿÿÿ....Næ@»± ¿DIl puntatore è stato dichiarato (e definito, in quanto è stata allocata per lui della memoria già all'inizio, quando il programma è stato caricato in memoria) subito dopo la variabile globale, e trova posto esattamente dopo la variabile globale, puntando all'indirizzo della variabile stessa.
Nessun commento:
Posta un commento