當您嘗試覆蓋$esp
指針時,您有沒有遇到以下問題?Ubuntu 11.10上的Smashing Stack
當然,嘗試一個合法的緩衝區大小始終有效!但是,當您嘗試增加緩衝區大小以覆蓋$esp
,並且設法成功觸摸$esp
的第一個字節,第二個字節或第三個字節時,它可以很好地工作。但是,只要您嘗試覆蓋$esp
的整個4個字節,它就會完全改變它的內容以及地址。它不再顯示41
s,因爲我使用「A」填充緩衝區。我附上了一個屏幕截圖,也許它會解釋更多細節。謝謝大家。
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}