我的钩子程序,在记事本输入的时候,钩到键盘输入了。但在浏览器输入的时候,却钩不到键盘信息,什么原因??
防钩?怎么突破抓键盘信息?

解决方案 »

  1.   

    看看是不是全局钩子,全局是没问题的。
    你用冰刃看一下是不是每个应用进程都加载了你的DLL
      

  2.   

    怎么有些回复用全局钩子呀,我 肯定是全局钩子了。我用的是Vista操作系统,在2000上是可以钩到浏览器的键盘输入的。
      

  3.   

    vista  果然厉害呀,自带的浏览器,键盘,鼠标都钩不到。反而在Vista下装了一个360安全浏览器可以钩到键盘和鼠标信息。看来360安全浏览器是自吹自擂呀。
      

  4.   

    你这钩子能不能勾到跟360安全浏览器安全性有啥关系?你用的啥钩子?WH_KEYBOARD_LL ?建议给程序加入AsAdministrator权限启动。
      

  5.   

    楼上的,不明白吗?就是说钩子程序是没问题的,除了vista下浏览器进程钩不到之外,其他任何进程是可以的。vista下的浏览器做了防钩保护的!!!   
      

  6.   

    不好意思,我用的是WH_KEYBOARD,难道WM_KEYBOARD_LL就可以吗?
      

  7.   

    WH_KEYBOARD  是要有dll注入目标进程。
    而WH_KEYBOARD_LL不需要注入目标进程就可以实现全局钩子。这就有一个权限问题了。如果目标进程的权限高于你的程序,你的注入就会失败。
      

  8.   

    楼上的,我觉得你有点想当然了。
    “如果目标进程的权限高于你的程序,你的注入就会失败”,我查看了一下,进程是普通权限,360浏览器也是普通权限而已。不存在权限的问题。我没试过WM_KEYBORAD_LL,但我想,针对vista中的IE来说,应该也是失效的。这应该是微软从安全角度考虑,在VISTA系统让IE不给挂钩。(从内核实现的,钩子失效)
    而2000系统中是可以挂钩的。
      

  9.   

    我并没有说问题一定是这样。我只是根据你的问题提出我自己的想法。你没有提供你的程序的权限。所以我只能设想你是出现了什么情况。而无论从内核机制上还是R3权限上,我都觉得应该去试试WH_KEYBOARD_LL钩子。试问:再你提供了这么少的信息的情况下,我不去设想,怎么来回答?而你试都不试就说我“草率”,首先你的态度就不对。我刚刚也测试了Win7下的WH_KEYBOARD_LL钩子,免得你说我“想当然”,而事实上也是可以挂到IE上。
      

  10.   

    呵呵,不管怎么说,还是谢谢你。我准备做WH_KEYBOARD_LL,WH_MOUSE_LL 测试,到时把vista IE上的测试结果贴上来。
      

  11.   

    确实,WH_KEYBOARD_LL,WH_MOUSE_LL可以钩到IE信息。