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