解決windows2003 sp1“資料執行保護”惹的禍

mrhaozi發表於2010-04-08
以前一直使用windows2003,沒打sp1補丁。自從出了VS 2005,下載了一個打算安裝,說windows2003需要更新到sp1,於是更新了sp1再裝VS 2005。打了SP1後,發現金山詞霸的“螢幕取詞”不能用了,本來以為是sp1對某些hook或者是記憶體讀寫做了安全方面的限制,沒怎麼理會,不能用屏 幕取詞就算了。
最近有需要安裝BCB6,裝的是Update4大企業整合安裝版(Keygen不能執行,需要在其他機上執行),安裝後使用正常,就只出現一個問題:在選 擇選單Project->Options時出現Access violation at adress 0012f973,write of address 0012f973
不能開啟Options的屬性頁。

奇怪的是,我同宿舍的同學的windows2003上安裝BCB6一切正常!!!用的是同一張安裝光碟,唯一不同的是他的用FAT32分割槽,我用 NTFS。本來以為問題出在這裡,後來乾脆用把D盤格式化成FAT32,再把BCB6安裝在D盤,結果還是不行!!!!!!
後來在網上尋找解決金山詞霸在windows2003 sp1下的螢幕取詞不能顯示的解決辦法時,發現“資料執行保護” (DEP)這個東西!

AMD的64位處理器中採用了一種新型的EVP功能(增強型病毒防護)為我們從源頭截斷了病毒等惡意程式碼 執行的可能。但它只提供硬體支援,要發揮這一功能,還必須與Windows XP SP2或64位作業系統的DEP(資料執行保護)技術相結合。兩者結合會把所有記憶體位置均標記為不可執行——除非該位置已明確包含可執行程式碼。此舉能有效 阻止攻擊程式企圖在不可執行的記憶體位置中插入程式碼並執行,很大程度上扼制了病毒等惡意程式碼的入侵,是一種主動的防毒機制。

在實際使用過程中,DEP會導致32位軟體出現相容性問題。這是因為DEP阻止了某些程式的執行,我們可透過修改DEP的方式來解決。下面以設定 “Virtal PC”為例進行說明。

方法一:更改DEP預設選項

右擊 “My Computer”,選擇“Properties(屬性)→Advanced(高階)→Settings→Data Execution Prevention(資料執行保護)”,可看到效能選項介面。

選擇第二項“Turn on DEP for all programs and services except those I select(為除下列我選定程式之外的所有程式和服務啟用DEP)”,再單擊“Add…”,定位到“Virtual PC”的安裝目錄,再選中啟動“Virtual PC”的可執行程式,然後單擊當前介面上的“開啟”即可將它新增到允許執行的列表中。



我的機器是AMD 速龍2800+,原來這個是硬體支援DEP,而我的同學是老版的P4,硬體不支援。把“資料執行保護”去掉後,一齊正常!解決了“螢幕取詞”和BCB6的 Options不能開啟(Access violation at adress 0012f973,write of address 0012f973)的問題!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16396910/viewspace-1032715/,如需轉載,請註明出處,否則將追究法律責任。

相關文章