2015-11-03 70 views

回答

1

fstack保護器是會放一些所謂的煙囪金絲雀隨機內容的函數調用的返回地址之前保護

迴歸之前,它會檢查隨機內容是和以前一樣那麼返回,否則退出。

由於緩衝區溢出攻擊試圖覆蓋函數的返回地址,所以它必須覆蓋棧金絲雀。

但隨機生成棧金絲雀,所以它可以用來防止覆蓋返回地址。

緩衝區溢出攻擊還帶有shellcode。

覆蓋返回地址並指向您的shellcode,然後生成shell。

Execstack是防止這種情況發生的保護措施。

輸入緩衝區位於堆棧上,您的shellcode也是。

但execstack使堆棧的內存區域不可執行。

當程序返回到shellcode時,它會發現這個內存區域是不可執行的。

這將導致分段錯誤。