我試圖運行這片脆弱的C代碼:防止分段故障12
#include <stdio.h>
#include <stdlib.h>
int add(int x, int y)
{
int z =10;
z = x + y;
return z;
}
main(int argc, char **argv)
{
int a = atoi(argv[1]);
int b = atoi(argv[2]);
int c;
char buffer[100];
gets(buffer);
puts(buffer);
c = add(a,b);
printf("Sum of %d+%d = %d\n",a, b, c);
exit(0);
}
我試圖讓過去的分段錯誤,這樣我可以輸入整數,但分段故障阻止了這一點在終端我曾嘗試: GCC -ggdb -fno-堆棧保護-U_FORTIFY_SOURCE -Wa, - execstack -o SimpleDemo SimpleDemo.c
我仍然得到分割故障。我失去了接下來要做什麼。正如你可以告訴,我是一個Ubuntu的新手。我使用的是bash代碼來自這裏:
http://www.evanjones.ca/buffer-overflow-101.html
我已經在這了一段時間,所以會很感激一些幫助
乾杯
您需要提供整數作爲命令行參數,不運行程序然後輸入它們。如果你不這樣做,'atoi(argv [1])'調用將會分解錯誤(可能)。 – hmjd