我有一个看起来像这样的程序:
/* buf_overflow.c */
#include <stdio.h>
int main(){
char buf[4];
char exploit_buf[4];
fgets(buf, 4, stdin);
gets(exploit_buf);
printf("exploit_buf: %s\n", exploit_buf);
return 0;
}
我将使用“gets”函数的漏洞来缓冲溢出一些其他变量。我要写入“exploit_buf”的值是“AAAAAAAA\x01\x00\x00\x00”,但我不知道如何将 ASCII 码“01”和“00”发送到exploit_buf。
我知道使用这个命令“printf "AAAAAAA\x01\x00\x00\x00"”可以输入我想要的字符,但我不知道如何将它们发送到exploit_buf。我也知道 Alt+(键盘右侧的数字键)可以从我输入的 ASCII 码生成字符,但这在我的程序中也不起作用。
主要问题是“我怎样才能跳过第一个函数“fgets()”并在“gets()”中键入任意 ASCII 码”。
任何人都知道如何在 linux 的命令行中输入任意 ASCII 码?