S
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?