精華區beta Programming 關於我們 聯絡資訊
※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: : > 現在最新的CPU 很多應該都有防止執行Data區裡的東西的功能 : > 也就是說 只要這個功能一打開 那些什麼加殼軟體全部變成廢物 : > 除非它輸出成檔案再執行 就我所知 加殼軟體好像只是把程式碼解壓縮到Data區 : > 再把執行的指標指向那個開頭 : > 同樣的 緩衝區溢滿的攻擊也應該會減少 理論上應該是不能 : 說得太神勇啦 ! 那種 CPU 的架構型號 ? 那家的產品 ? 願聞其詳. http://www.computerdiy.com.tw/modules/news/article.php?storyid=1281 http://www.hkepc.com/hwdb/e0celerondj-2.htm Intel Execute Disable Bit 因此,硬體的解決方法就變的很有價值,就如前述,在新的570處理器中的記憶體區間如果 是用來放置程式碼,當XD bit旗標被設定時就無法被執行 AMD Non-eXecute 所有的超微AMD64處理器在上市之初就已經有類似的功能了,但並沒有socket A平台禁止 執行的功能,超微稱這個功能為NX(Non-eXecute)或在視窗環境稱為EDB (Execute Dis able Bit),不過,要小心的是:在Windows XP下要等Service Pack 2安裝後才可擁有此 功能,而Windows Server 2003使用者就要等到Service Pack 1安裝之後才有這個功能。 : > 所以說 只要這種功能整個市面上的CPU都有時 : > 不管你C C++ Jave C# VB @#$@$什麼的 : > 都一樣無法執行Data裡的Code : 高階語言的指述, 本來就是設計成讓 programmer 無法在 data segment : 執行程式, 也無法把 code 當 data 來改. : > 至於其它方法 我就不知道了 -- VICTOR工作室 URL : http://www.kinmen.info/vic/ C/C++ Visual Basic 6.0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.64.30