2010-10-04 222 views
0

有誰知道相對於幀指針的地方是函數的返回地址嗎? windows和unix有區別嗎?幀指針+返回地址

謝謝:)

+0

這對我來說沒有多大意義。根據我的經驗,幀指針寄存器是某種類型的堆棧指針的偏移量,而返回地址位於代碼空間中。罕見的情況是代碼和堆棧空間混合在一起。你想在這裏完成什麼? – 2010-10-04 17:40:00

+1

@Michael我認爲他的意思是,堆棧上的偏移量(相對於幀指針)在哪裏返回地址*存儲*? (不過,我同意你對「你想要完成什麼」)。 – 2010-10-04 17:52:29

回答

2

這在很大程度上取決於架構,編譯器等

嘗試dissasembling一些玩具程序,並找出(見objdump在linux)

1

寄信人地址是在EBP + 4,但是你不能像緩衝區溢出一樣使用它,因爲你還沒有控制執行流。

你應該尋找的是從緩衝區返回地址的距離。這對於每個漏洞都是獨一無二的,任何陷入其中的內容都需要預測,否則您很可能會導致該進程轉儲。