Perché usiamo little endian negli attacchi di overflow del buffer? [chiuso]

-3

Perché negli attacchi con buffer overflow invertiamo l'indirizzo? Perché utilizziamo il formato little endian?

    
posta Inj3ct0r 17.01.2018 - 16:25
fonte

2 risposte

4

Why do we reverse the address/use little endian in buffer overflow attacks?

Questa affermazione non è sempre vera. Su un sistema big endian, non rappresenteresti i dati in little endian.

Su un sistema little endian, i valori sono rappresentati prima dal byte meno significativo. Quindi, in memoria, il numero intero a 32 bit 0xDEADBEEF sarebbe rappresentato come 0xEFBEADDE .

Quando si sfrutta un overflow del buffer e, ad esempio, si sovrascrive il puntatore di ritorno per passare a un indirizzo di memoria che si controlla, è necessario specificare questo indirizzo in little endian. Penso che la tua domanda si stia chiedendo perché la notazione little endian qui sia necessaria, ma questo è semplicemente perché è il formato che il processore capisce. A rischio di semplificazione eccessiva, si sta effettivamente iniettando il codice macchina in memoria, quindi deve corrispondere a tutto il resto. Se hai fornito un indirizzo in big endian, riceverai l'indirizzo sbagliato o forse uno completamente non valido.

    
risposta data 17.01.2018 - 17:45
fonte
0

Perché in generale lo stack va dalla parte superiore della memoria alla parte inferiore, quindi i "dati" che utilizzi sono sempre scritti dal basso verso l'alto.

Modifica

Ciòsignificachel'overflowdelbuffersiverificaaunindirizzoinferioreperquantoriguardaidatichestaicercandoditraboccare.

Controllaquesto link per ulteriori dettagli

    
risposta data 17.01.2018 - 16:41
fonte

Leggi altre domande sui tag