Shellcode mit fcanf einlesen



  • Hallo,
    ich hab folgendes Problem;
    Ich würde gerne Shellcode, der in einem File abgelegt ist einlesen und ihn über einen function pointer ausführen.

    Der Shellode liegt in der datei als;
    [code]
    snusu@dell ~/test $ cat testfile
    \x31\xd2\x52\x68\x64\x65\x21\x0a\x68\x6c\x6c\x63\x6f\x68\x20\x73\x68\x65\x68\x63\x74\x65\x64\x68\x69\x6e\x6a\x65\x89\xe1\x6a\x14\x5a\x6a\x01\x5b\x6a\x04\x58\xcd\x80\x6a\x01\x58\x6a\x06\x5b\xcd\x80
    [\code]

    Wenn ich den Shellcode bereits in einem array angelegt habe, funktionierts einwandfrei.

    [cpp]
    unsigned char shellCode[]=
    "\x31\xd2\x52\x68\x64\x65\x21\x0a\x68\x6c\x6c\x63\x6f\x68\x20\x73\x68\x65\x68\x63\x74\x65"
    "\x64\x68\x69\x6e\x6a\x65\x89\xe1\x6a\x14\x5a\x6a\x01\x5b\x6a\x04\x58\xcd\x80\x6a\x01\x58"
    "\x6a\x06\x5b\xcd\x80";
    [\cpp]

    Wenn ich jedoch das File einlese und es dann ausführe, bekomme ich einen SEG_FAULT.

    [cpp]
    stat("testfile", &sb);
    imageLength = sb.st_size;
    image = (char 😉 calloc(sizeof(char), imageLength + 1);
    file = fopen("testfile","r");
    fread(image, imagLength, 1, file);
    [\cpp]

    Also muß ich das file mit fscanf konvertieren, aber wie muß der Formatstring aussehen?


Anmelden zum Antworten