缓冲区溢出 - 为什么有些ascii的工作而不是其他工作

时间:2011-05-07 04:12:37

标签: c overflow buffer exploit

如果这个问题很愚蠢或被问到,我很抱歉,但我找不到。

我有一个程序,我试图使用缓冲区溢出流量。这是一个简单的程序,它使用getchar()来检索用户的输入。缓冲区设置为12号。我可以通过键入> 12 x或使用> 12 \ x78来使程序崩溃,但如果输入数百个A或\ x41,它将不会出错。

非常感谢任何帮助或指向正确的方向。

2 个答案:

答案 0 :(得分:0)

0x41414141可能是进程文本页面中的有效地址。有关详细信息,请查看流程的细分图。

答案 1 :(得分:0)

要消除猜测,请查看汇编代码,然后查看程序的机器指令。在调试器中运行它,看看内存中发生了什么。您可以看到堆栈上的哪些地址放置了局部变量,以及在函数调用中保存了什么地址寄存器,尤其是指令指针。

您是否看过维基百科上的the stack overflow等示例?