Supponendo l'architettura della CPU Intel Atom 2008 di Ubuntu 14.04 a 32 bit e x_86, quanti byte fa il formato %x
letto dallo stack?
So che posso leggere cosa c'è nella pila usando:
formatstring="%x";
printf(formatstring);
Come ho messo più %x
nella stringa di formattazione, più dati vengono letti dallo stack.
Poiché %x
richiede 4 byte, ogni %x
dovrebbe leggere 4 byte dallo stack, quindi ad esempio se il 1%% co_de legge ciò che è stato scritto all'indirizzo %x
il 0x0
leggerà l'indirizzo 2nd
e così via (ovviamente i numeri sono solo per me per rendere la spiegazione più semplice).
Questa supposizione è corretta? Non sembra che da quando ho provato un esercizio per calcolare l'indirizzo di una variabile facendo 0x4
ho trovato un indirizzo sbagliato.