2010年2月21日 星期日

天殺的DEP

M$真的很喜歡做那些脫褲子放屁或是搬石頭砸自己的腳的事。DEP就是一種jackmis覺得很鳥的設計。然而,M$的OS已經不能沒有它了...因為...一開始沒弄好,只好步步錯下去了吧...大概是這樣...

DEP是一種安全機制,主要目的是為了防止惡意的攻擊。

然而它有一個天殺的副作用,就是會誤判危險,讓許多程式無法正常工作。而DEP最常被誤判的軟體裡,Windows Live就是最令jackmis頭痛的項目...

狀況大概是有人的MSN暱稱中有連續三個的『"』符號,再加上一些有的沒的的字元,就會被DEP認為有危險...

DEP判斷出危險後,它的反應是直接關閉該程式。因此,你就會發現你的MSN突然無法運作...真他x的,把妹把到一半,它怎麼掛了...更慘的事,當MSN重開,還可能不斷的被DEP關閉...這.......這東西怎麼沒有一個"退場機制"呀...老天...

為了解決這個麻煩,網路上有一種解除DEP的方法:
進入DOS,下指令
bcdedit.exe /set {current} nx AlwaysOff


但這有兩個缺點:
1.沒了DEP,可能有危險。
黑暗執行緒 - 你DEP了嗎?
http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/12/11/do-you-dep.aspx
2.解除了DEP...他x的jackmis的Windows Live還是一直被關閉...棍!

(滿口髒話的jackmis.......真是被氣到...)

於是jackmis想說,還是把DEP打開來好了。因此,jackmis下了
bcdedit.exe /set {current} nx AlwaysOn
Off的另一個方個就是On,很直覺嘛...雖然覺得怪怪的...那個Always應該不會沒有意義= =

結果重開機後立刻出代誌,因為設成AlwaysOn的話,全部的軟體都被DEP監看了。這和預設狀況是不同的,預設的是只監看M$自己的軟體(主要是帶在Windows中的),比如Windows Live就是被監看的對像。而AlwaysOn的話,連阿貓阿狗的軟體也被擋了下來....此時的jackmis真的是氣到七竅生煙、嘔血數升...

上網查了後:
Vista DEP enable/disable
http://www.vistax64.com/tutorials/120778-dep-enable-disable.html
應該是執行
bcdedit.exe /set {current} nx OptIn
才對

為了Windows天才般的安全架構,我們就把DEP開著吧...反正...Windows Live還是不能用,對吧...棍

歡迎提供能讓小弟的MSN能work的方法...

1 則留言:

Jackmis 提到...

n年過後,jackmis因為工作的關係對security的研究也變得更深。在此補通何為DEP。
DEP全名是Data Execution Prevention,它主要的目的是為了避免buffer overflow的攻擊。
原理是這樣子的。程式在執行並配置記憶體的時候,我們將「資料」與「指令」放在不同的分頁中。此時,若攻擊者成功將指令塞到記憶體裡,欲執行放在「資料」區的指令時,這個行為就能被偵測出來,避免惡意指令被執行。