如果这个问题很愚蠢或被问到,我很抱歉,但我找不到。
我有一个程序,我试图使用缓冲区溢出流量。这是一个简单的程序,它使用getchar()来检索用户的输入。缓冲区设置为12号。我可以通过键入> 12 x或使用> 12 \ x78来使程序崩溃,但如果输入数百个A或\ x41,它将不会出错。
非常感谢任何帮助或指向正确的方向。
答案 0 :(得分:0)
0x41414141可能是进程文本页面中的有效地址。有关详细信息,请查看流程的细分图。
答案 1 :(得分:0)
要消除猜测,请查看汇编代码,然后查看程序的机器指令。在调试器中运行它,看看内存中发生了什么。您可以看到堆栈上的哪些地址放置了局部变量,以及在函数调用中保存了什么地址寄存器,尤其是指令指针。
您是否看过维基百科上的the stack overflow等示例?