Lachesis Shield 设计上的抉择
生活随笔
收集整理的這篇文章主要介紹了
Lachesis Shield 设计上的抉择
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近有很多朋友和同學跟我談起 Lachesis Shield 設(shè)計上的一些問題。我想我需要總結(jié)一下我的設(shè)計策略,雖然這是個看起來簡單得不能再簡單的工具。 我面臨的選擇: 1 界面位置
顯然,有很多位置可以擺放這么個不起眼的東西,比如說:
a 就放在桌面上做成懸浮窗口,用 layered window 做成半透明。
b systray。
c deskband。 2 權(quán)限調(diào)整
a 只有兩種狀態(tài),受限和不受限。并且對被控制進程來說一旦創(chuàng)建就不可更改。
b 用驅(qū)動定義多種權(quán)限并可以自由轉(zhuǎn)換。 3 界面
a 鼠標單擊切換。
b 針對軟件復雜的功能設(shè)計復雜的界面和配置系統(tǒng)。 ok,以上就是我可以做出的選擇,當然一切技術(shù)上的問題都不是問題。以下就是我的選擇和理由: 首先這個工具最好是隨系統(tǒng)啟動,這個不影響選擇。 其次,為了hook api,我可以用注冊表,常規(guī)鉤子注入dll,remotethread等等,我甚至可以用驅(qū)動。 我注意到一個事實:大部分的程序其實都是用戶操作運行起來的,而這第一道門就是explorer。那么其實我只要把explorer的口封上,對于我來說目的基本就達到了。 于是,deskband成了不二之選。為什么呢? 作為進程內(nèi)COM組件,deskband會被explorer自動加載,自然就完成了隨系統(tǒng)的啟動(其實是登錄了)而啟動,而且explorer被關(guān)閉還會自動重新啟動,免除了額外設(shè)計恢復機制的麻煩。
其次,既然是進程內(nèi)COM,自然就免除了注入代碼這個手續(xù)。注意一個事實:很多殺毒軟件對CreateRemoteThread這個調(diào)用是敏感的。
最后,deskband毫無疑問就是用來做界面的。 剩下的問題就比較簡單,我沒有必要也不可能選擇驅(qū)動,這樣不僅僅是帶來額外的復雜性的問題。用驅(qū)動來修改windows內(nèi)核的安全子系統(tǒng)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)我不是不會,問題是這已經(jīng)屬于rootkit,絕對會被殺軟封殺。其次這屬于在windows內(nèi)核的安全子系統(tǒng)插入第三方代碼并且加入了令牌權(quán)限調(diào)整功能接口,這本身就是一個安全悖論。最后,這種奇技淫巧在windows x64上行不通,除非我再強迫系統(tǒng)關(guān)閉PatchGuard,這又是另外一個安全悖論了,我不能為了自己這么一個工具在系統(tǒng)上開兩個大大的口子。 至于復雜的配置,我考慮過黑白名單,但是短期內(nèi)我并不想加上,如果這個黑白名單被篡改就得不償失了。 當然具體實現(xiàn)上還有一些其它的問題,比如必須用themeapi自繪,沒有采用微軟的detrous等等。目前被gdi+和safer api限定也很不爽。還有就是deskband這個接口貌似只有微軟用得很正常(WMP),第三方包括msdn的例子運行起來都有點小問題。
顯然,有很多位置可以擺放這么個不起眼的東西,比如說:
a 就放在桌面上做成懸浮窗口,用 layered window 做成半透明。
b systray。
c deskband。 2 權(quán)限調(diào)整
a 只有兩種狀態(tài),受限和不受限。并且對被控制進程來說一旦創(chuàng)建就不可更改。
b 用驅(qū)動定義多種權(quán)限并可以自由轉(zhuǎn)換。 3 界面
a 鼠標單擊切換。
b 針對軟件復雜的功能設(shè)計復雜的界面和配置系統(tǒng)。 ok,以上就是我可以做出的選擇,當然一切技術(shù)上的問題都不是問題。以下就是我的選擇和理由: 首先這個工具最好是隨系統(tǒng)啟動,這個不影響選擇。 其次,為了hook api,我可以用注冊表,常規(guī)鉤子注入dll,remotethread等等,我甚至可以用驅(qū)動。 我注意到一個事實:大部分的程序其實都是用戶操作運行起來的,而這第一道門就是explorer。那么其實我只要把explorer的口封上,對于我來說目的基本就達到了。 于是,deskband成了不二之選。為什么呢? 作為進程內(nèi)COM組件,deskband會被explorer自動加載,自然就完成了隨系統(tǒng)的啟動(其實是登錄了)而啟動,而且explorer被關(guān)閉還會自動重新啟動,免除了額外設(shè)計恢復機制的麻煩。
其次,既然是進程內(nèi)COM,自然就免除了注入代碼這個手續(xù)。注意一個事實:很多殺毒軟件對CreateRemoteThread這個調(diào)用是敏感的。
最后,deskband毫無疑問就是用來做界面的。 剩下的問題就比較簡單,我沒有必要也不可能選擇驅(qū)動,這樣不僅僅是帶來額外的復雜性的問題。用驅(qū)動來修改windows內(nèi)核的安全子系統(tǒng)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)我不是不會,問題是這已經(jīng)屬于rootkit,絕對會被殺軟封殺。其次這屬于在windows內(nèi)核的安全子系統(tǒng)插入第三方代碼并且加入了令牌權(quán)限調(diào)整功能接口,這本身就是一個安全悖論。最后,這種奇技淫巧在windows x64上行不通,除非我再強迫系統(tǒng)關(guān)閉PatchGuard,這又是另外一個安全悖論了,我不能為了自己這么一個工具在系統(tǒng)上開兩個大大的口子。 至于復雜的配置,我考慮過黑白名單,但是短期內(nèi)我并不想加上,如果這個黑白名單被篡改就得不償失了。 當然具體實現(xiàn)上還有一些其它的問題,比如必須用themeapi自繪,沒有采用微軟的detrous等等。目前被gdi+和safer api限定也很不爽。還有就是deskband這個接口貌似只有微軟用得很正常(WMP),第三方包括msdn的例子運行起來都有點小問題。
轉(zhuǎn)載于:https://www.cnblogs.com/skogkatt/archive/2008/03/20/4163685.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Lachesis Shield 设计上的抉择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [原创]flex 3 + .net开发f
- 下一篇: 微信申请信用卡成功率高吗?与资信条件成正