PDA

View Full Version : [C] Problema rappresentazione indirizzo


Teo@Unix
05-02-2010, 16:22
Ciao.

Sono su debian 5,

spero che possiate darmi una mano a capire questo problema, potrebbe essere che a forza di pensarci il mio cervello si sia ingarbugliato a tal punto .... da non accorgersi che magari è una stupidata.... il fatto è questo:

è un pò difficile esporre la cosa ma...analizzando con gdb un programma c arrivo che nello stack vi è allocato un buffer che contiene degli indirizzi, l'istruzione che vado a provare fa puntare eip a questo indirizzo.
Stampando il contenuto di eip.... mi viene visualizzato all'incontrario!
Più semplice guardando l'output direttamente:
0xbffff060: 0x50074388 0x99e18953 0x80cd0bb0 0xd889db31
0xbffff070: 0xbf80cd40 0xbffff09e 0xbffff09e 0xbffff09e
0xbffff080: 0xbffff09e 0xbffff09e 0xbffff09e 0xbffff09e
0xbffff090: 0xbffff09e 0xbffff09e 0xbffff09e 0xbffff09e
0xbffff0a0: 0xbffff09e 0xbffff09e 0xbffff09e 0xbffff09e
(gdb) n
0xf09ebfff in ?? ()
(gdb) print $eip
$3 = (void (*)()) 0xf09ebfff


mi viene spezzato ed invertito! Però non capisco perchè.....
sono più che certo che il valore che eip deve contenere in quell'istante è 0xbffff09e.

Scusate se sono stato poco chiaro forse.....
voi avete idee da cosa può dipendere?
o forse è giusto che gdb mi stampi in questo modo? ma non credo....:(

EDIT:
non credo neanche sia un problema di ordinamento.

DanieleC88
06-02-2010, 00:36
Un pezzo di codice si potrebbe vedere?