Wikiepdia this blog post . 我理解shell代码是如何引入程序内存的。但是,如何使程序跳转/调用堆上的地址内存?
这种攻击是否需要使用缓冲区溢出攻击?
有没有像缓冲区溢出的黄金法则,即使用n个版本的函数( strncpy strcpy )?
strncpy
strcpy
如果我理解正确,
他们通常利用 这些堆块将 大致在同一地点 流可以重定向到堆 通过缓冲区溢出或堆喷射
他们说的是这样一种情况:
char buffer[10]; FuncPtr p;
当你读到 buffer p . 稍后当您的代码尝试调用 第页
buffer
p
第页
简单的解决方法:不要使用静态缓冲区(更喜欢 std::
std::