钩子keyHOOK怎么样才能渗透到其它进程里?
我做了一个KeyHOOK测试了一下,只能用在调用的程序里,而我发现QQHOOK可以渗透到所有进程???
请问原理?和如何实现?有源码例子更好!

解决方案 »

  1.   

    Hook的Demo有很多了
    做成Dll的就可以了
    挂靠全局有效的Hook参数,看MSDN最清楚的
      

  2.   

    我的是做成DLL的,也是照书上说的,用了API函数注册了,可还是不能用于全局呀
    我用了SetWindowsHookEx注册呀
      

  3.   

    Hook不是很难的技术,网上资料和DEMO也很多,楼主多找找吧
      

  4.   

    注意SetWindowsHookEx最后一个参数要跟目标线程的线程标识符.
      

  5.   

    如果才能知道正要动行程序的标识符呢?如果让DLL文件随某一文件同时加载呢?
      

  6.   

    SetWindowsHookEx(挂接类型,函数指针,本进程地址,0);
      

  7.   

    SetWindowsHookEx(WH_KEYBOARD,@KeyboardProc,Shared^.Moudle,0);
    当其他进程的键盘响应消息时,会挂上的.要是没有键盘响应消息.钩子是不会自动加载到其他进程上的.
      

  8.   

    我已经找到一个可以渗透其它进程的实例了,现在想问:
    1、如果让DLL不被再次加载,再次加载会严重浪费资源
    2、如何让DLL随系统启动而启动,当然得排除加入启动,修改注册表的启动项的方法
      

  9.   

    zhsunson(sunson) 找到了,你要拿出来大家研究一下。
      

  10.   

    对呀,是《Delphi深入Windows核心编程》里的一个例子,我现在想找这本书,还没有找到呢!谁有通知一声
      

  11.   

    注入EXPLORER。EXE的话需要用到内存三级跳,不需要用钩子。这是WIN的一个老BUG了。
      

  12.   

    用一个DLLHOOK可以注入任何一个程序,腾讯的QQHOOK.DLL不就是做得很好吗?可以注入任何一个启动于它后的进程里,以前的诺顿也因为这个技术把它当成是一种病毒!
      

  13.   

    把消息处理函数封装到DLL里,把SetWindowsHookEx的dwThreadID参数设为0,可以将DLL嵌入到所有的线程,拦截所有窗口的消息。
      

  14.   

    function SetWindowsHookEx(idHook: Integer; lpfn: TFNHookProc; hmod: HINST; dwThreadId: DWORD): HHOOK; stdcall;这是在Delphi下的说明,其中第一个参数是钩子的类型;第二个参数是钩子函数的地址;第个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程;返回钩子句柄。如果指定了某个确定的线程就只监视那个线程,即是线程钩子;如果为空,即是监视所有线程的全局钩子。