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 
  1. it defines ret pointer function has no parameter () , returns int. so, () indicates definition of parameters of function.

  2. it's casting code pointer function has no parameter () , returns int.

  3. casts code function , assigns ret. after can call ret();.

 

unsigned char code[] =  "\x31\xc0\x50\x68\x6e\x2f\... 

it sequence of machine instructions represented hex values. injected code function.


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -