Tag: stack

如何在GCC,Windows XP,x86中编写缓冲区溢出漏洞?

void function(int a, int b, int c) { char buffer1[5]; char buffer2[10]; int *ret; ret = buffer1 + 12; (*ret) += 8;//why is it 8?? } void main() { int x; x = 0; function(1,2,3); x = 1; printf(“%d\n”,x); } 上面的演示来自这里: http://insecure.org/stf/smashstack.html 但它在这里不起作用: D:\test>gcc -Wall -Wextra hw.cpp && a.exe hw.cpp: In function `void function(int, int, […]

如何在Mac OS X上使用ulimit或每个进程为C或Ruby程序更改堆栈大小?

似乎为C程序或Ruby程序(使用C堆栈)设置堆栈大小的推荐方法是在Bash shell中使用ulimit 。 但 $ ulimit -s 8192 $ ulimit -s 16384 -bash: ulimit: stack size: cannot modify limit: Operation not permitted 而sudo也没有帮助。 有没有办法将其设置为16MB,32MB或64MB? 我认为应该有一种方法来设置每个程序调用,而不是设置系统范围的参数? 现在8192可能意味着8MB这是非常小的,如果将其与进程可以使用的数量进行比较,有时甚至高达2GB的RAM。 ( 更新说明: ulimit -a可以显示其当前值)。 ( 更新2:看起来似乎ulimit -s 是每个shell,如果你第一次设置它,它通常会工作。问题是你第二次设置它,然后它可能会返回一个错误)