【发布时间】:2012-04-19 19:12:42
【问题描述】:
当您尝试覆盖$esp 指针时,是否有人遇到过以下问题?
当然,尝试合法的缓冲区大小总是有效的!但是,当您尝试增加缓冲区大小以覆盖$esp 并且您成功地触摸$esp 的第一个字节、第二个字节或第三个字节时,它可以完美运行。但是,一旦您尝试覆盖 $esp 的全部 4 个字节,它就会完全改变它的内容以及地址。它不再显示41s,因为我使用“A”来填充缓冲区。我附上了一个屏幕截图,也许它会更详细地解释。谢谢大家。
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}
【问题讨论】:
标签: ubuntu x86 segmentation-fault stack