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