我有計劃,看起來像這樣:如何在linux bash中輸入ASCII碼「00」和「01」?
/* 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;
}
我要使用的脆弱性「得到」功能,緩衝區溢出一些其他變量。我想寫入「exploit_buf」的值是「AAAAAAAA \ x01 \ x00 \ x00 \ x00 \ x00」,但我不知道如何將ASCII碼「01」和「00」發送到exploit_buf。
我知道使用這個命令「printf」AAAAAAAA \ x01 \ x00 \ x00 \ x00「x00」「可以輸入我想要的字符,但我不知道如何將它們發送到exploit_buf。我也知道Alt +(鍵盤右側的數字鍵)可以從我輸入的ASCII碼中生成字符,但是這在我的程序中也不起作用。
主要問題是「如何跳過第一個函數」fgets()「並在」gets()「中鍵入任意的ASCII代碼。
任何人都知道如何在Linux的命令行中輸入任意的ASCII碼?
但這個方案將與fgets(),然後再得到(),我怎麼能跳過第一個函數「fgets()」? – Brian 2013-03-09 07:18:17
[Bash的ANSI-C引用](http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting)也可以理解其他轉義序列,比如'\ xHH'。 – Gumbo 2013-03-09 08:51:08