Posted on 2010-03-09 15:34
S.l.e!ep.¢% 閱讀(997)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
RootKit
http://hi.baidu.com/zzzevazzz/blog/item/a6d4f309a218d583d0581b37.html
一個(gè)反鍵盤記錄工具的分析
2007-04-12 14:09
(下面的文字本是我在某個(gè)論壇的回貼,后來發(fā)現(xiàn)跑題了,食之無味棄之可惜,于是轉(zhuǎn)貼到這里 )
除了nProtect,國外還有一些反鍵盤記錄工具,比如下面這個(gè)還不錯(cuò):
http://www.anti-keyloggers.com/
是個(gè)通用型的,與QQ的nProtect專門用于保護(hù)密碼不同。 而且反破解做的不錯(cuò)(對(duì)我這種破解外行而言,呵呵)。
它的原理我簡(jiǎn)單的說一下,就是替換鍵盤類驅(qū)動(dòng)的KeyboardClassServiceCallback,然后把得到的ScanCode傳遞到用戶態(tài),由位于Winlogon.exe的一個(gè)線程負(fù)責(zé)調(diào)用NtUserSendInput,將按鍵消息發(fā)給當(dāng)前焦點(diǎn)窗口。
應(yīng)該說這款反鍵盤工具的設(shè)計(jì)思想是很先進(jìn)的: 1,選用KeyboardClassServiceCallback的好處是,比鍵盤過濾驅(qū)動(dòng)更底層,對(duì)PS/2或USB鍵盤通用。 2,用Winlogon轉(zhuǎn)發(fā)消息的好處是,自動(dòng)適應(yīng)多用戶(session)的情況。 3,用NtUserSendInput的好處是,不會(huì)被Windows消息鉤子掛鉤。 4,雖然它沒有構(gòu)建起完全獨(dú)立的鍵盤輸入通道(這么做太復(fù)雜,兼容性不好),但對(duì)于沒有重建的部分,通過檢測(cè)鉤子的方式彌補(bǔ)。
它的鉤子檢測(cè)功能對(duì)于用戶態(tài)不錯(cuò),遺憾的是,居然漏掉了中斷服務(wù)掛鉤的檢測(cè),實(shí)在是個(gè)大疏忽。另外,作為通用型保護(hù)機(jī)制,不可避免的具有一些局限性,比如無法防御用窗口子類化來做鍵盤記錄。
還有一款產(chǎn)品:
http://www.anti-keylogger.net/
以后有空再看看,呵呵。
|