example 1 内存内容覆盖
|
|
上图中的第二条注意:
main函数的返回地址指的是当函数执行完之后,EIP寄存器所应该跳转的地址!example2 覆盖函数返回地址
|
|
var处于栈内存的顶部,下面存放的是ebp寄存器的内容,这个不是我们关心的。
ebp下面是函数的返回指针,而这时我们修改的重点。将指针指向hacked()函数的首地址。
后来的内存变化:
|
|
上图中的第二条注意:
main函数的返回地址指的是当函数执行完之后,EIP寄存器所应该跳转的地址!
|
|
var处于栈内存的顶部,下面存放的是ebp寄存器的内容,这个不是我们关心的。
ebp下面是函数的返回指针,而这时我们修改的重点。将指针指向hacked()函数的首地址。
后来的内存变化:
本文标题:堆栈内存溢出漏洞
文章作者:Babydragon
发布时间:2017-11-13, 20:58:22
最后更新:2018-03-23, 16:48:59
原始链接:http://baolintian.github.io/2017/11/13/堆栈内存溢出漏洞/
许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。