帧指针+返回地址

时间:2010-10-04 17:36:46

标签: callstack

有人知道相对于帧指针的位置是函数的返回地址吗? windows和unix之间有区别吗?

谢谢:)

2 个答案:

答案 0 :(得分:2)

它在很大程度上取决于架构,编译器等。

尝试解散一些玩具程序并找出(参见linux中的objdump

答案 1 :(得分:1)

返回地址在堆栈帧中为EBP + 4,但由于您尚未控制执行流程,因此无法在缓冲区溢出时使用它。

您应该寻找的是返回地址与缓冲区的距离。这对于每个漏洞都是独一无二的,并且需要预测其间发生的任何事情,否则您很可能只会导致进程转储。