【发布时间】:2011-10-14 19:52:08
【问题描述】:
我正在尝试编写对 libc 漏洞利用的返回,但无法弄清楚我应该将 system() 调用的参数放在堆栈中的哪个位置。
易受攻击的功能是
void func(char *str)
{
char buffer[12];
strcpy(buffer,str);
}
此函数的堆栈将如下所示:
-----------
str
-----------
return address
-----------
previous frame pointer
-----------
buffer
-----------
我知道我必须用system() 调用的地址覆盖返回地址,但是我应该将其参数的地址放在哪里以及为什么?
谢谢。
【问题讨论】:
标签: security unix calling-convention shellcode