能不能写个记录qq密码的键盘记录器?
rt 考完试做个看看。 QQ密码啊,08年去京城时陈辉分析过一下,说有可能不用驱动直接在RING3下得到.至于使用驱动的招,应该就挺多了,冰下海不是发过一个嘛?测试通过的. 冰下海?
在哪啦?我怎么没看到?
验证码真麻烦!~ http://www.m5home.com/blog/article.asp?id=248 qq2009好象不行 回复 6# ok100fen
可以的。。。。直接端口操作;下面给个例子
这个程序运行后会在当前目录生成一个psw.dat的文件,直接用记事本打开就是了
因为是基于端口的操作,位于最底层(再到底层就是硬件抽象层了,一般无法直接对这个进行编程),所以基本上所有键盘都可以拦截
但因为使用了intel8052芯片的通讯协议,所以只对ps/2键盘有效;usb的话,因为涉及到不同的厂商生产的键盘所用的usb芯片不一样,无法继续按这个原理去实现,只有在键盘类驱动去实现,但安全性当然大打折扣!
这个也就是冰下海那篇文章所说方法的实现 没有源码 回复 8# HoviDelphic
要源码干嘛?
这东西被滥用的话可害人不浅。。。 回复HoviDelphic
要源码干嘛?
这东西被滥用的话可害人不浅。。。
364589886 发表于 2010-1-11 08:45 http://www.m5home.com/bbs/images/common/back.gif
确实,此技术除了用于偷东西,我还真想不出别的正面的用途........ 不行,我测试了,
我的电脑上不但记录不了,而且鼠标和键盘都有问题
鼠标不能双击了,
键盘也失灵了
后来我恢复了系统 回复 10# 马大哈
记录键盘按键的频率,在密码学上用得着。 回复 10# 马大哈
正面用途到是有,比如QQ用来保护自己的密码不被盗。。。但目前好像一般的编程不会用到这些
除非腾讯自己想用这个东西 回复 11# ok100fen
呵呵。。。。说了叫你不要强行终止kbrec.exe这个进程的,你强行终止它,如果此时恰好键盘中断是被关闭的,那你的PS/2的键盘鼠标当然都要出问题了.为了安全起见,我设置为90秒后程序自动退出的。
记录不了是不可能的,除非你的键盘不是PS/2接口的。。。。与kbrec.exe同目录下会有个psw.dat,其实是文本文件,直接打开就可以看到了 回复 13# 364589886
即便要用,我认为也会使用兼容性更好的方案,这个方案毕竟只能折腾PS/2吧,嘿嘿:lol 回复 15# 马大哈
确实,从安全性来说,这个方案基本无可挑剔(不过如果别有用心的软件也这么做,那就要看哪个程序先取得对键盘的控制权了)
另外,这个程序基本是自己实现了一个键盘驱动,所以安全性高,但因为针对的是特定硬件,所以通用性不好
USB的话,估计不太容易做出通用性的,因为芯片种类实在太多,如果可以统一指定一个用于键盘的协议的话,那还有可能。。。否则除非修改MS的USBHID.sys这个驱动或者牺牲安全性,在键盘类驱动上做手脚了 突然来了兴致,我干脆把整个键盘的通讯架构说一下。我们先看下一次击键动作产生的信号是怎么进入应用层的:
硬件(硬件抽象层):姑且这么认为,虽然他们二者一个是物理现实的东西,一个是逻辑上的东西。。。由这个东西产生电平变化,从而也就有了二进制流(具体细节就不多说了,做过单片机的键盘扫描的人想必应该很熟悉)。与此同时,会触发键盘上的控制芯片内的键盘中断,此中断会通过主板向CPU发出中断请求,于是CPU会来读取相应端口的数值(实际是各个引脚的高低电平),然后进行一些转换后,发到我们的应用程序事先申请的缓冲区内,于是我们的程序通过读这个缓冲区就得到了键盘数据。这个过程中,实际上最底层的驱动只是把分析出的数据提交到了键盘的类驱动,由类驱动将数据提交给我们的应用程序。类驱动的接口是标准的,不会发生变化,所以不同的键盘硬件只要完成了与类驱动的通信工作,那么他就可以正常工作。PS/2由于属于骨灰级的键盘硬件架够,所以MS事先就把数据读取与转换工作做好了。。。。
对于USB键盘,事实上是首先经过了USB的总线驱动,然后经过USBHID.sys翻译为标准的类驱动接口数据后再与类驱动通信的。要对USB键盘也做端口操作的话,除非你对USB键盘芯片的通讯协议和USB驱动很熟悉,否则实现起来不容易
一般的键盘过滤,也就是在协议驱动与类驱动之间(这个算是比较底层了)挂了一层过滤,或者更有简单点的,直接把过滤层挂在类驱动之上
但这样做的一个问题是,如果我通过端口操作直接在第一线把所有数据控制住了(比如我发的那个例子程序),那么无论你怎么过滤,怎么保护,当然就不起任何作用了。这也是一个比较不好解决的问题,因为越底层,与应用层的距离越远,就越不太容易获得应用层的信息,从而给应用层的用户带来不便。。。。就说这么多了 回复 17# 364589886
这么说来,要想通吃USB与PS/2,那只能在类驱动里处理,再向下就无法通吃了.
话说回来,这一点上面,反面程序反而更有优势.
怎么说呢,QQ一类程序必然是需要完全的通吃的,而木马一类小偷程序就无所谓啦,哈哈.
它们可以只管PS/2呀!
反正PS/2的键盘也挺多,"市场"还是蛮大的....
只是苦了正面程序们,有些可怜,哈哈....并不是达不到那技术,而是市场不允许使用那技术.... 话又说回来.
如果只考虑PS/2的情况,要是出现了非法结束控制进程,驱动不正常了,键盘鼠标也就没法用了...
得再使用个机制确定RING3控制程序的存活,如果不存在了赶紧恢复,不然影响用户操作呀.
不过......貌似想得太多了,如果是正面程序,不会用这招,如果是反面程序,不会考虑这点....:lol 口水出来了···
HD什么时候放源码··
等你啦··
哈哈···· 口水出来了···
HD什么时候放源码··
等你啦··
哈哈····
shixiaoxu 发表于 2010-1-13 22:19 http://www.m5home.com/bbs/images/common/back.gif
恢复消息钩子的源码貌似xacker发过了,你去vbgood找找。 回复 19# 马大哈
确实是这样。。。到最低层后,越接近硬件,就越受硬件限制,这也是矛与盾的关系。。。。除非QQ之类的软件先做个键盘类型的判断,然后加载不同的驱动,否则难以通吃。
不过PS/2键盘目前确实有很大市场,基本所有笔记本都是PS/2的 回复 22# 364589886
不过PS/2键盘目前确实有很大市场,基本所有笔记本都是PS/2的
不是usb吗? 回复马大哈
不过PS/2键盘目前确实有很大市场,基本所有笔记本都是PS/2的
364589886 发表于 2010-1-15 21:38 http://www.m5home.com/bbs/images/common/back.gif
貌似是这样,目前我见过的所有本本都是使用PS/2的键盘鼠标.
我觉得可能是因为PS/2没有USB方便,而且也为了节省USB资源吧..... 回复 24# 马大哈
呵呵。。。。我发现这里的人好像都对邪门武功比较感兴趣。。。。。比如hook,注入等等。。。。可惜啊,好好的九阴真经,被练成了九阴白骨爪:L 回复 25# 364589886
其实对于正统的武功认真练好也挺强大的.
只是现在习武的人很少有强身健体的需求,多半是为了打架,哈哈.
很多年前我学VB时第一想法就是做个木马出来偷别人号,后来才意识到,这是小偷啊,哈哈哈哈,想起那时候真惭愧... 回复 26# 马大哈
其实所谓邪门功夫,就如黄老邪与洪七公一样,二者真要打起来谁输谁赢还不一定。。。只不过所谓邪门,主要是采取了一些被名门正派所不齿的方式。
不过无所谓了,只要用在正途上,什么方法都可以。。。邪门功夫被更多用于歪门邪道而已。。。比如对于文件系统过滤,正统方法通常是附加一个过滤驱动,这个常被用于杀毒软件的杀毒引擎、数据加密解密等,而邪门功夫通常会修改MajorFunction这个数组的内容为自己的函数地址,或者干脆修改别人的派遣函数为一个跳转地址(inlinehook)。。。。。。这两种方法效果都是一样的,不过后一种看起来确实很邪恶:L :L ,并且常被木马、病毒等程序所采用。。。。原因就在于,前一种正统方法要处理的情况太多,很烦,但这种方法考虑问题较全面,一般不会出问题。。。后一种就是实用主义了,编码量小,有时候效率还要高于正派功夫,但因考虑问题不全,一旦遇到特殊情况或者复杂情况,就难保不出问题了,这也是木马病毒等常导致系统故障的原因所在 回复 27# 364589886
关键还是在于应用范围.
正规技术麻烦,但是稳定,这正是第一考虑的.
而非正规技术简单,但考虑不周全,不稳定,却也正符合某些场合.
像我做的一些工业项目,如果稳定与安全不放在第一位,一旦出事,有可能就是人命.....
但别的场合就不需要考虑这么多了,怎么简单怎么好.
现在想想,应该能解释为什么WIN98的执行效率比起以后的2K内核要高了,哈哈. 回复364589886
现在想想,应该能解释为什么WIN98的执行效率比起以后的2K内核要高了,哈哈.
马大哈 发表于 2010-1-19 11:29 http://www.m5home.com/bbs/images/common/back.gif
:funk:
不会吧? 98快吗? 98除了不稳定,快是相当快......
记得在很多年以前,WIN2000已经出来了,但是很多网吧还是使用WIN98作为系统.
我一个朋友的网吧用了几台内存为384的机器装2000,再与98进行对比,98完全胜出.
机器除了内存不同,其余配置一样,98使用的是256M内存.
只是98没事容易BSOD,囧....
你们要是有多余的机器,可以测试一下,装个98.肯定运转如飞,哈哈.
貌似有个3秒启动版的98:lol 这种东西需要滥用嘛,会着不难,难者不会,rootkit上面现有的例子代码就有,而且可以知道用,挂中断,读取I/0,然后在写回端口,没记错的话被键盘中断后扫描码I/0端口是0X64,看操作系统,x86相关的书,都的去了
页:
[1]
2