假设我们有一个功能
foo(char *name,int id)
{
printf ("%s%d",name,id);
}
使用缓冲区溢出,我们用foo函数地址替换堆栈上的返回地址。我能够做到这一点。
我如何溢出函数参数? foo有两个参数,请有人帮我理解如何使用缓冲区溢出来溢出这些参数。
答案 0 :(得分:0)
理论上是的,当调用函数时,参数被压入堆栈,但成功覆盖取决于堆栈的布局。此外,您必须以某种方式实现目标,以免破坏其间的数据。
上面的代码也有另一个漏洞,请考虑一下。