Non riesco a far funzionare il semplice gestore di shellcode [chiuso]

-2

Sto solo provando ad eseguire shellcode direttamente dalla riga di comando. Invio un semplice NP 0x90 e ottengo un errore di segmentazione?

root@server:~# gcc shellcode.c -o shellrun -fno-stack-protector -z execstack

root@server:~# ./shellrun 'perl -e 'print "\x90"''
Segmentation fault (core dumped)

root@server:~# more shellcode.c
int main(int argc, char *argv[])
{
        (*(void(*)())argv[1])();
        return 0;
}
    
posta anonymous 30.11.2014 - 06:17
fonte

2 risposte

-2

Esegui xor 0 e exit () linux syscall invece di nop poiché l'argv termina con un opcode byte null, questa è la causa per segfault

    
risposta data 01.12.2014 - 03:35
fonte
6

Nell'esempio proposto, il programma sta eseguendo una slitta nop composta da \x90 . Dopo che questa slitta di nop è stata eseguita, non ritorna in main e quindi si blocca con Segmentation fault .

Considerare l'apprendimento di più assembler e, soprattutto, utilizzare GDB per eseguire il debug degli errori di segmentazione .

    
risposta data 30.11.2014 - 18:39
fonte

Leggi altre domande sui tag