C語言最簡單攻擊手段——內存洩漏

內存洩漏

在C語言程序設計中,內存洩漏幾乎是很難避免的,C程序產生洩漏內存,則運行速度會逐漸變慢,並最終停止運行;如果產生覆蓋內存,程序會變得非常脆弱,很容易受到惡意用戶的攻擊。內存洩漏是一種隱性危害,它們很難被發現,通常不能在相應的源代碼中找到錯誤,需要仔細分析與專門的檢測工具才能發現。

(1)內存洩漏的含義:

通常我們所說的內存洩漏,是指分配出去的內存在使用之後沒有釋放掉,沒有回收,長此以往,會造成沒有足夠的內存可以分配。一般表現為運行時間越長,佔用的內存越多,最終導致系統奔潰。一般的內存洩漏是指堆內存的洩漏。堆內存是指程序從堆中分配的,大小任意的(內存塊的大小可以在程序運行期決定),使用完後必須顯式釋放的內存。應用程序一般使用malloc,realloc,new等函數從堆中分配到一塊內存,使用完後,程序必須負責相應的調用free或delete釋放該內存塊,否則,這塊內存就不能被再次使用,我們就說這塊內存洩漏了。

C語言最簡單攻擊手段——內存洩漏

(2)內存洩漏示例:

#include

#include

int main()

{

while(1)//死循環

{

malloc(1024); //動態內存分配,分配1024個字節的內存

}

return 0;

}

這段代碼有一個死循環,然後每次循環都會申請1024個字節的內存,卻並沒用手動釋放內存,長此以往,會造成沒有足夠的內存可以分配,大家可以在自己的電腦上面試一下,然後打開任務管理器,看內存的使用率。輕則程序崩潰,重則死機,當然操作系統一般會有保護機制,不會產生太嚴重的後果

寫在最後

初學者有什麼不懂的可以私信我,需要系統學習資料和系統學習框架圖的同學,可關注小編頭條號,歡迎留言評論和私信小編。【私信方法】文章上方處點擊“作者頭像”,進入作者首頁,在作者主頁上方點擊“關注”旁邊的“發私信”即可。私信內容:學習幫助。

喜歡小編的文章的朋友可以關注、收藏、轉發、留言,閱讀愉快!!

C語言最簡單攻擊手段——內存洩漏


分享到:


相關文章: