« 關於最近猖狂的病毒 Sasser Worm | 回到主頁面 | MT新知,MT3.0 Develop Edition 開始使用 »

May 14, 2004

Buffer Overflow 的範例程式


將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati

關於buffer overflow的範例程式,就如同上一篇文章裡面有提到,buffer overflow 主要是利用C++對於陣列大小沒有限制的概念,當你輸入一個過大的數值,回傳值(return value)會被蓋掉,即使你輸入錯誤的數值,你會也因為這樣而成功的登入電腦(或是使某個安全認證通過~~~)

一個好朋友(生魚片)寫了一個範例程式,但是我看了一下總是覺得哪裡怪怪的,因為我記得雖然記憶return value會在記憶體位置之中,但是很難確切抓出function的回傳位置就在變數之後,並且他設定的函數為void,照理說也是無法回傳的才對~所以我大膽猜測他所寫的程式主要是將func的副程式加以執行過後的結果,與我們原先探討的Buffer Overflow有所差異,所以我寫了一個範例程式如下:

在這個範例程式之中,副函示有數個變數宣告,buf[1],*p, r_c 所以記憶體分配方式如下(先宣告的記憶體位址比較後面,後宣告的記憶體位置比較前面)

               | 
                               +



STL與泛行程式設計學習心得

由 Evan 發表於 May 14, 2004 將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati
引用
本文的引用網址:


以下是前來引用的連結 'Buffer Overflow 的範例程式' 來自 Blog E
迴響
發表迴響









記住我的資訊?




(請輸入以下的驗證碼)