我想钩SOCKET里的几个函数(不如send).我在网上找了几个例子,都是只能钩某个进程的 send,现在我需要的是不管是那个进程的 send都能钩到.大家帮帮忙,给我个例子参考一下.谢谢.

解决方案 »

  1.   

    我想钩SOCKET里的几个函数(如send).我在网上找了几个例子,都是只能钩某个进程的 send,现在我需要的是不管是那个进程的 send都能钩到.大家帮帮忙,给我个例子参考一下.谢谢.
      

  2.   

    SetWindowsHookEx,第三个参数设置成NULL就可以了。
      

  3.   

    is your example thread hook?modify it to global hook,SetWindowsHook the last param should be 0.
    or you can use SPI.
      

  4.   

    danyueer(淡月儿:清水上的足音)  有没有相关的例子啊
      

  5.   

    我的那个例子用的是DLL 改起来很麻烦
      

  6.   

    你的情况应该是API Hook,在Dll里面应该有一个地方调用了SetWindowsHookEx函数,这个函数的最后一个参数指定了被挂钩的进程,如果把这个参数设置成NULL,那么钩子就会被挂到全局所有的进程上,在你这里也就是不管哪个进程的send都能钩到。
      

  7.   

    没有用到SetWindowsHookEx ,HOOK的是API
      

  8.   

    我用的是别人的一个DLL 我没办法修改 能不能给我一个有源代码的例子
      

  9.   

    没有用SetWindowsHookEx ?难道用的是CreateRemoteThread?如果是就比较麻烦了。如果实在不行去看《Windows核心编程》第22章,有一个完整的API Hook类,无需改动就可以直接运用到程序当中。
      

  10.   

    这是API HOOK用SetWindowsHookEx好像是不行吧。
    一个办法是改注册表。
    我还有一个办法,没试过^_^:
    在你的dll中hook ShellExecute等函数
    然后将你的dll注入explore.exe,之后打开一个process注入一个
    看看《Windows核心编程》吧^_^
      

  11.   

    用修改IAT表的方法是不是可以
      

  12.   

    SatanLi1982,“这是API HOOK用SetWindowsHookEx好像是不行吧”?你好像比较业余哦 :)
    API Hook最常见的实现手法就是用SetWindowsHookEx进行Dll注入,然后修改IAT,实现API挂钩。
      

  13.   

    danyueer(淡月儿:清水上的足音) 是啊 我是才接触HOOK 帮帮忙 能不能给我个代码参考一下
      

  14.   

    钩住指定进程的,通常是用CreateRemoteThread()注入目标进程,然后修改目标进程的IAT。我看过一个例子,SetWindowsHookEx()设置全局的WH_GETMESSAGE钩子,然后修改所有被钩住的进程中的IAT就可以了。
      

  15.   

    http://www.driverdevelop.com/forum/upload/IoriKingdom/2004-10-30_Sign.rar
    这个是我当年在驱坛写的钩子例子
      

  16.   

    http://www.driverdevelop.com/forum/upload/IoriKingdom/2004-11-29_Sign.rar
    搞错了,刚才那个是EXE,这个是源代码
      

  17.   

    又搞错了,原来是HOOK socket的,汗,不好意思~~~~
      

  18.   

    全部的进程?没有导入User32.dll的进程用SetWindowsHookEx是Hook不到的替换ws2_32.dll算了
      

  19.   

    SetWindowsHookEx要等到有消息才会启动,如果是控制台程序就不很作用了还是用CreateRemoteThread,然后修改导入表或者函数头几个字节...最好修改前先停掉进程的其它线程改完再resume