Je hebt een klacht over de onderstaande posting:
Het gaat er niet om of de shellcode wel of niet werkt met een NULL byte er in. Nee, Het ging erom dat je alle functies in c moest afsluiten met een NULL byte. Dat je het niet kan injecteren via shellcode is een heel ander verhaal en dan ben ik het met je eens. Dat stukje programma code zou een overflow moeten geven omdat die geen NULL byte heeft. Want execve is wel aangeroepen. Dus zou er ook een NULL byte bij hadden gemoeten. Gezien het een c functie is. Wanneer je push 0 toevoegd geeft die bij gdb aan xor %edx,%edx mov $0xb,%al mov $0x804809a,ebx push $0x0 mov %esp,%ecx push %edx int $0x80 Execve aanroep zonder NULL xor %edx,%edx mov $0xb,%al mov $0x804809a,ebx mov %esp,%ecx push %edx int $0x80 Hoe kan die dan toch execve uitvoeren? Waneer ik die dan run in gdb geeft die aan. Bij label_one+9 0x80408b (label_one+9) add %al,0x0 Is dat waar die de NULL toevoegd dan? Jij maakt hier gebruik van een db waarbij je gewoon een fixed size array van bytes ...
Beschrijf je klacht (Optioneel):