記憶體溢位是什麼意思
在論壇上很多朋友在討論關於記憶體溢位一系列問題。對於這個故障現象,到底是什麼意思呢?下面小編就為大家介紹一下具體的解決方法吧,歡迎大家參考和學習。
具體的故障現象及解決方法:
?
記憶體溢位通俗解釋:
通俗理解就是記憶體不夠,通常在執行大型軟體或遊戲時,軟體或遊戲所需要的記憶體遠遠超出了你主機內安裝的記憶體所承受大小,就叫記憶體溢位。此時軟體或遊戲就執行不了,系統會提示記憶體溢位,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分記憶體又可以正常執行該軟體或遊戲一段時間。
記憶體溢位基本含義:
記憶體溢位已經是軟體開發歷史上存在了近40年的“老大難”問題,像在“紅色程式碼”病毒事件中表現的那樣,它已經成為黑客攻擊企業網路的“罪魁禍首”。 如在一個域中輸入的資料超過了它的要求就會引發資料溢位問題,多餘的資料就可以作為指令在計算機上執行。據有關安全小組稱,作業系統中超過50%的安全漏洞都是由記憶體溢位引起的,其中大多數與微軟的技術有關
記憶體溢位基本內容:
為了便於理解,我們不妨打個比方。緩衝區溢位好比是將十磅的糖放進一個只能裝五磅的容器裡。一旦該容器放滿了,餘下的部分就溢位在櫃檯和地板上,弄得一團糟。由於計算機程式的編寫者寫了一些編碼,但是這些編碼沒有對目的區域或緩衝區——五磅的容器——做適當的檢查,看它們是否夠大,能否完全裝入新的內容——十磅的糖,結果可能造成緩衝區溢位的產生。
如果打算被放進新地方的資料不適合,溢得到處都是,該資料也會製造很多麻煩。但是,如果緩衝區僅僅溢位,這只是一個問題。到此時為止,它還沒有破壞性。當糖溢位時,櫃檯被蓋住。可以把糖擦掉或用吸塵器吸走,還櫃檯本來面貌。與之相對的是,當緩衝區溢位時,過剩的資訊覆蓋的是計算機記憶體中以前的內容。除非這些被覆蓋的內容被儲存或能夠恢復,否則就會永遠丟失。
在丟失的資訊裡有能夠被程式呼叫的子程式的列表資訊,直到緩衝區溢位發生。另外,給那些子程式的資訊——引數——也丟失了。這意味著程式不能得到足夠的資訊從子程式返回,以完成它的任務。就像一個人步行穿過沙漠。如果他依賴於他的足跡走回頭路,當沙暴來襲抹去了這些痕跡時,他將迷失在沙漠中。這個問題比程式僅僅迷失方向嚴重多了。入侵者用精心編寫的入侵程式碼***一種惡意程式***使緩衝區溢位,然後告訴程式依據預設的方法處理緩衝區,並且執行。此時的程式已經完全被入侵者操縱了。
入侵者經常改編現有的應用程式執行不同的程式。例如,一個入侵者能啟動一個新的程式,傳送祕密檔案***支票本記錄,口令檔案,或財產清單***給入侵者的***。這就好像不僅僅是沙暴吹了腳印,而且後來者也會踩出新的腳印,將我們的迷路者領向不同的地方,他自己一無所知的地方。
記憶體溢位的原因及解決方法