Shellcode in C program -
the link http://hackoftheday.securitytube.net/2013/04/demystifying-execve-shellcode-stack.html highlights way write execve 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(); } what line int (*ret)() = (int(*)())code; do?
int (*ret)() = (int(*)())code; ~~~~~~~~~~~~ ~~~~~~~~~~~~~~ 1 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 it defines
retpointer function has no parameter(), returnsint. so,()indicates definition of parameters of function.it's casting
codepointer function has no parameter(), returnsint.casts
codefunction , assignsret. after can callret();.
unsigned char code[] = "\x31\xc0\x50\x68\x6e\x2f\... it sequence of machine instructions represented hex values. injected code function.
Comments
Post a Comment