2016-03-01 48 views
0

從我現在瞭解的情況來看,由於函數的參數被傳遞給調用堆棧,如果一個參數「溢出」它給出的緩衝區,它可以在之後覆蓋內存。如果足夠了,它可以覆蓋賦給指令指針(eip)的返回地址。因此,通過控制eip,我們可以將執行發送到其他地方溢出的shell代碼。但是,不執行shell代碼中的錯誤字符。爲什麼會這樣,爲什麼我們需要跳轉到esp然後到shell代碼而不是直接?如果我錯了,請糾正我。謝謝。爲什麼要跳轉到esp(緩衝區溢出)?

回答

0

正如我所說的那樣,跳轉到esp的正常程序。 esp是下一個操作的指針;這個名字是不是全稱爲xD? 該體系結構實現您使用默認的註冊表。

隨時糾正我; D