複製太多了
char buf[8]; /* tiny buffer, easy to overflow */
printf("What is your name?\n");
scanf("%s", buf); /* WRONG */
scanf("%7s", buf); /* RIGHT */
如果使用者輸入的字串長度超過 7 個字元(空終止符為 -1),則緩衝區 buf
後面的記憶體將被覆蓋。這會導致未定義的行為。惡意黑客經常利用此漏洞來覆蓋返回地址,並將其更改為黑客惡意程式碼的地址。