#include<stdio.h> void main(){ int variabile=0xCACACACA;; int *puntatore=&variabile; getc(stdin); }Ecco in OllyDbg una parte dello stack durante l'esecuzione della funzione main, prima delle istruzioni che dichiarano la variabile e il puntatore:
0016FBB0 CCCCCCCC 0016FBB4 CCCCCCCC 0016FBB8 CCCCCCCC 0016FBBC CCCCCCCC 0016FBC0 CCCCCCCC 0016FBC4 CCCCCCCC 0016FBC8 CCCCCCCC 0016FBCC CCCCCCCC 0016FBD0 CCCCCCCC 0016FBD4 CCCCCCCC 0016FBD8 CCCCCCCC 0016FBDC CCCCCCCC 0016FBE0 CCCCCCCC 0016FBE4 CCCCCCCC 0016FBE8 CCCCCCCC 0016FBEC /0016FBF8 0016FBF0 |76A04B29 RETURN to kernel32.76A04B29 0016FBF4 |7FFDE000 0016FBF8 ]0016FC38 0016FBFC |77C3E1C6 RETURN to ntdll.77C3E1C6Dopo che viene dichiarata la variabile, di valore 0xCACACACA:
0016FBB0 CCCCCCCC
0016FBB4 CCCCCCCC
0016FBB8 CCCCCCCC
0016FBBC CCCCCCCC
0016FBC0 CCCCCCCC
0016FBC4 CCCCCCCC
0016FBC8 CCCCCCCC
0016FBCC CCCCCCCC
0016FBD0 CCCCCCCC
0016FBD4 CCCCCCCC
0016FBD8 CCCCCCCC
0016FBDC CCCCCCCC
0016FBE0 CCCCCCCC
0016FBE4 CACACACA
0016FBE8 CCCCCCCC
0016FBEC /0016FBF8
0016FBF0 |76A04B29 RETURN to kernel32.76A04B29
0016FBF4 |7FFDE000
0016FBF8 ]0016FC38
0016FBFC |77C3E1C6 RETURN to ntdll.77C3E1C6
E dopo che viene inizializzato il puntatore:
0016FBB0 CCCCCCCC 0016FBB4 CCCCCCCC 0016FBB8 CCCCCCCC 0016FBBC CCCCCCCC 0016FBC0 CCCCCCCC 0016FBC4 CCCCCCCC 0016FBC8 CCCCCCCC 0016FBCC CCCCCCCC 0016FBD0 CCCCCCCC 0016FBD4 CCCCCCCC 0016FBD8 0016FBE4 0016FBDC CCCCCCCC 0016FBE0 CCCCCCCC 0016FBE4 CACACACA 0016FBE8 CCCCCCCC 0016FBEC /0016FBF8 0016FBF0 |76A04B29 RETURN to kernel32.76A04B29 0016FBF4 |7FFDE000 0016FBF8 ]0016FC38 0016FBFC |77C3E1C6 RETURN to ntdll.77C3E1C6...che contiene l'indirizzo nello stack della variabile locale!
Il codice in Assembly delle due istruzioni che dichiarano variabile e puntatore è:
00D413AE C745 F8 CACACACA MOV DWORD PTR SS:[EBP-8],CACACACA 00D413B5 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8] 00D413B8 8945 EC MOV DWORD PTR SS:[EBP-14],EAXL'indirizzo della variabile locale nello stack viene copiato nel registro EAX e quindi copiato da questa nello stack.
Nessun commento:
Posta un commento