※ 引述《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