标签: callstack
有人知道相对于帧指针的位置是函数的返回地址吗? windows和unix之间有区别吗?
谢谢:)
答案 0 :(得分:2)
它在很大程度上取决于架构,编译器等。
尝试解散一些玩具程序并找出(参见linux中的objdump)
答案 1 :(得分:1)
返回地址在堆栈帧中为EBP + 4,但由于您尚未控制执行流程,因此无法在缓冲区溢出时使用它。
您应该寻找的是返回地址与缓冲区的距离。这对于每个漏洞都是独一无二的,并且需要预测其间发生的任何事情,否则您很可能只会导致进程转储。