色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 緩沖區溢出指的是什么

緩沖區溢出指的是什么 時間:2018-12-28      來源:華清遠見

緩沖區溢出,是針對程序設計缺陷,向程序輸入緩沖區寫入使之溢出的內容(通常是超過緩沖區能保存的最大數據量的數據),從而破壞程序運行、趁著中斷之際并獲取程序乃至系統的控制權。

計算機程序一般都會使用到一些內存,這些內存或是程序內部使用,或是存放用戶的輸入數據,這樣的內存一般稱作緩沖區。溢出是指盛放的東西超出容器容量而溢出來了,在計算機程序中,就是數據使用到了被分配內存空間之外的內存空間。而緩沖區溢出,簡單的說就是計算機對接收的輸入數據沒有進行有效的檢測(理想的情況是程序檢查數據長度并不允許輸入超過緩沖區長度的字符),向緩沖區內填充數據時超過了緩沖區本身的容量,而導致數據溢出到被分配空間之外的內存空間,使得溢出的數據覆蓋了其他內存空間的數據。

在計算機安全領域,緩沖區溢出就好比給自己的程序開了個后門,這種安全隱患是致命的。緩沖區溢出在各種操作系統、應用軟件中廣泛存在。而利用緩沖區溢出漏洞實施的攻擊就是緩沖區溢出攻擊。緩沖區溢出攻擊,可以導致程序運行失敗、系統關機、重新啟動,或者執行攻擊者的指令,比如非法提升權限。通過往程序的緩沖區寫超出其長度的內容,造成緩沖區的溢出,從而破壞程序的堆棧,造成程序崩潰或使程序轉而執行其它指令,以達到攻擊的目的。造成緩沖區溢出的原因是程序中沒有仔細檢查用戶輸入的參數。

下面通過一個示例來詳細看看什么是緩沖區溢出。程序的緩沖區就像一個個格子,每個格子中存放不同的東西,有的是命令,有的是數據,當程序需要接收用戶數據,程序預先為之分配了4個格子(下圖中黃色的1~4號格子)。按照程序設計,就是要求用戶輸入的數據不超過4個。而用戶在輸入數據時,假設輸入了17數據,而且程序也沒有對用戶輸入數據的多少進行檢查,就往預先分配的格子中存放,這樣不僅4個分配的格子被使用了,其后相鄰的13個格子中的內容都被新數據覆蓋了。這樣原來13個格子中的內容就丟失了。這時就出現了緩沖區(1~4號格子)溢出了。

緩沖區溢出

如下代碼的問題就出在strcpy(buf, s)這條語句上,它將s拷貝到buf中,而沒有對s的長度進行限制,這就給緩沖區溢出攻擊提供了可乘之計。

#include 

#include 

void vulFunc(char* s)

{

    char buf[10];

    strcpy(buf, s);

    printf("String=%s\n", buf);

}

 

main(int argc, char* argv[])

{

     if(argc == 2)

     {   

           vulFunc(argv[1]);

     }

   else

   {

      printf("Usage: %s \n", argv[0]);

   }

}

緩沖區溢出一般是由于一下原因導致:

1.字符串處理函數沒有指定長度,單單憑借結尾字符是不是'\0'來判斷結束。

2.被處理的字符超過緩沖區可接受的大小。例如,從屏幕輸入字符串:gets(buff),但是buff的內存少于屏幕一行字符個數,就會導致溢出,應該使用fgets。

3.所有格式化字符串的函數:fprintf("%n",&num_write)。

避免的辦法:

1.不要把用戶的輸入作為參數傳到格式化字符串處理函數中,例如,printf("%s", argv[1])。

2.字符串處理避免使用strcpy,strcat,sprintf,gets。應該使用strncpy,strncat,snprintf。strlcpy和strlcat都是NULL結尾。盡量使用std::string,MFC::CString

3.使用C++ I/O函數

4.使用安全的C Runtime Time函數

5.檢查文件路徑的長度,不要超過系統允許的最大值。

上一篇:什么是字符串數組

下一篇:ARM工程師是做什么的?需要掌握什么技能?

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲欧洲精品成人久久av18 | 狠狠色狠狠爱综合蜜芽五月 | 日韩a级一片 | 国产美女mm131爽爽爽爽 | 超碰caopro熟女m超碰分类 | 久久婷婷色综合一区二区 | xxxxx中国少妇 | 少妇一晚三次一区二区三区 | 地下室极端性调教 | 日本无码一区二区三区有码中出 | 蜜桃久久久aaaa成人网一区 | 日本一区二区视频在线观看 | 69ZXX少妇内射无码 | 无码AV免费精品一区二区三区 | 在线国产毛片 | 777米奇色狠狠888俺也去乱 | 中文字幕奈奈美被公侵犯 | 国产欧美亚洲一级激情在线观看 | 四虎影视在线视频 | 少妇一级毛片免费看 | 国产午夜福利在线播放 | 国产在线精品国自产拍影院同性 | 69堂人成无码免费视频果冻传媒 | 永久中文字幕免费视频网站 | 无码一区18禁3D | 曰韩免费无码AV一区二区 | 精品国品一二三产品区别在线观看 | 国产jk精品白丝av在线观看 | 人人看人人澡 | 特黄大片AAAAA毛片 | 男人进女人下部全黄大色视频 | 蜜臀AV色欲无码A片一区 | 日韩精品人妻无码久久影院 | 噜噜吧噜吧噜吧噜噜网A | 中文字幕人成乱码熟女 | MM1313亚洲国产精品无码 | 亚州AV综合色区无码一区 | 亚洲国产AV无码男人的天堂 | 精品久久久久久久免费人妻 | 久久精品国产99久久六动漫 | 女人18毛片a级毛片 成·人免费午夜无码区 |