Cercando di capire il layout dello stack

1

Sto provando a fare questo esercizio di vulnerabilità del formato stringa semplice (non è per i compiti, il semestre universitario si è concluso 1 mese fa in Australia) .

C'è una funzione di controllo della password che contiene la password e confronta l'input con esso byte per byte.

Secondo la funzione, ci dovrebbero essere 4 variabili nello stack, la stringa di indovina, la stringa della password, la risposta di stampa (vuota prima di un'ipotesi) e il numero di tentativi rimasti.

Ho letto il manuale di Shellcoder e TAOSA, a mio avviso i due array dovrebbero essere uno dopo l'altro nello stack frame di questa funzione. Quindi inserire semplicemente %x%x dovrebbe stamparlo in esadecimale, quindi posso convertire in ASCII e questa è la password.

Finora un esempio di password:

WPK1ZHv1wubJ

emette

590481d86720756f73736575203a64657825782578257825

dallo stack.

Tuttavia questo non cambia indipendentemente dalla password (la password è presa da /dev/random a ogni esecuzione).

Che cosa sto facendo male qui?

Nota:

Ho disattivato ASLR con sysctl kernel.randomize_va_space=0 e ho compilato con -fno-stack-protector -mpreferred-stack-boundary=2

    
posta killingtime1 09.12.2016 - 02:47
fonte

0 risposte

Leggi altre domande sui tag