0

我正在尝试运行这段易受攻击的 C 代码:

#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-stack-protector -U_FORTIFY_SOURCE -Wa,--execstack -o SimpleDemo SimpleDemo.c

我仍然遇到分段错误。我不知道接下来要尝试什么。你可能会说,我是一个 ubuntu 新手。我使用的 bash 代码来自这里:

http://www.evanjones.ca/buffer-overflow-101.html

我已经有一段时间了,所以非常感谢一些帮助

干杯

4

1 回答 1

1

只是解释 hmjd 要求你做什么。

运行(二进制)10 20

于 2012-06-26T18:58:25.977 回答