我正在處理一個二進制文件。它有一個地址從123開始的函數。我需要讓我的代碼執行這個函數。攻擊堆棧
二進制文件接受大小爲'n'的字節數組,並且不檢查邊界。整個任務實際上是溢出緩衝區並導致不好的事情發生。
同樣,工作是調用地址123並讓它執行。我的印象是,如果緩衝區大小是「4」,並且我傳遞了9個字符,則5個字符將被放置在堆棧上並執行。 (這是真的嗎?)
此外,爲了讓我得到要執行的地址,我想說「致電123」。從我所瞭解的「電話」是「e8」,不是?
這個問題對我來說有點困惑。如果有人可以幫助我更好地理解它,我將非常感激
(是的,這是一個家庭作業問題)
0xE8是相對調用,你需要調用一個絕對地址。堆棧通常是「浮動」的。 – ruslik 2010-11-03 02:25:00
我希望我們有這些家庭作業.. – ruslik 2010-11-03 02:26:09
只是有點好奇 - 我會認爲像這樣的安全類會有一個彙編語言的先決條件。這是怎麼回事? – 2010-11-03 03:04:33