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