首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
Any2Bat.vbs- -| 回首页 | 2007年索引 | - -又到年终总结的时候了

一个反键盘记录工具的分析

关键词anti-keylogger                                          

(下面的文字本是我在某个论坛的回贴,后来发现跑题了,食之无味弃之可惜,于是转贴到这里)

除了nProtect,国外还有一些反键盘记录工具,比如下面这个还不错:
http://www.anti-keyloggers.com/

是个通用型的,与QQ的nProtect专门用于保护密码不同。
而且反破解做的不错(对我这种破解外行而言,呵呵)。

它的原理我简单的说一下,就是替换键盘类驱动的KeyboardClassServiceCallback,然后把得到的ScanCode传递到用户态,由位于Winlogon.exe的一个线程负责调用NtUserSendInput,将按键消息发给当前焦点窗口。

应该说这款反键盘工具的设计思想是很先进的:
1,选用KeyboardClassServiceCallback的好处是,比键盘过滤驱动更底层,对PS/2或USB键盘通用。
2,用Winlogon转发消息的好处是,自动适应多用户(session)的情况。
3,用NtUserSendInput的好处是,不会被Windows消息钩子挂钩。
4,虽然它没有构建起完全独立的键盘输入通道(这么做太复杂,兼容性不好),但对于没有重建的部分,通过检测钩子的方式弥补。

它的钩子检测功能对于用户态不错,遗憾的是,居然漏掉了中断服务挂钩的检测,实在是个大疏忽。另外,作为通用型保护机制,不可避免的具有一些局限性,比如无法防御用窗口子类化来做键盘记录。

还有一款产品:

http://www.anti-keylogger.net/

以后有空再看看,呵呵。

【作者: zzzevazzz】【访问统计:】【2007年01月3日 星期三 21:22】【注册】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6014637

回复

- 评论人:fskcik   2007-02-27 02:06:18   

“他应该写写怎么伪装USBKey”,既然你这么牛你写一篇让我们学学。

- 评论人:zzzevazzz   2007-01-11 12:47:38   

To GK:
1,xyzreg的分析写的太浅显了,他应该写写怎么伪装USBKey。
2,隐藏List/Tree条目哪来的空白?当然是一整行都隐藏掉。
3,单一的界面元素隐藏不足以构成rootkit,结合多种技术则会增加复杂度,甚至削弱隐蔽性。

- 评论人:GK   2007-01-10 11:00:27   

xyzreg有个BANK防止密码纪录技术缺陷分析的PDF,还不错
就是之类化隐藏的问题,有空白怎么处理?MMC和TASKMGR我还是没有搞定
SPY++看不到SYSLISTVIEW32的消息?

隐藏界面元素在目前来说还是有一定意义,听老V说好像全局子类化或者超类化都能做到,具体就不太了了,目前有没有有源码的子类化的ROOKIT的呢?

- 评论人:topmint   2007-01-08 18:29:56   

分析的挺好
其实有些东西并不需要键盘纪录,直接取就是了.比如针对IE浏览器的WEB登陆密码之类的截取.

- 评论人:zzzevazzz   2007-01-04 23:44:05   zzzevazzz的博客  

用户态的键盘记录工具比较常见,有些做的不错,能详细记录时间、窗口名、当前用户名等附加信息,但技术上看就很普通了。而内核的键盘记录工具则相反,大都是试验性质的,越底层功能越差。最好还是自己动手写一个,呵呵。

- 评论人:傲少   2007-01-04 13:57:16   

那zzzevazzz有没有哪个键盘纪录,你认为做的比较好的,推荐几个呢?

- 评论人:zzzevazzz   2007-01-03 23:21:02   zzzevazzz的博客  

又不是隐藏界面元素,只是键盘记录的话,转发所有消息并记录按键消息就可以了。隐藏界面元素的问题,一两句说不清,确实没有很通用的办法。不过mmc和taskmgr还是很容易的啦。

- 评论人:GK   2007-01-03 22:53:35   

子类化后GUI上有空白,这样的问题桌面解决?MMC和TASKMGR使用的不是LISTVIEW32控件?

验证码:   
评论内容: