大家好,我用<<WINDOWS核心编程>>里的方法替换了QQ里用到的WS2_32.DLL里的send()和sendto(), 我的WriteProcessMemory()已经返回true了,可却一直没有拦截到任何信息.是QQ或POPO等软件里有反拦截的功能吗?请大侠指教,谢谢!

解决方案 »

  1.   

    并且奇怪的是,我可以拦截自己写的send,却怎么也拦截不到QQ里的send
      

  2.   

    它可能用了 WSARecv/WSARecvFrom, WSASend/WSASendTo,你需要逐个hook
      

  3.   

    QQ用的应该不是send函数,是其他的API
      

  4.   

    send sendto WSASend WSASendTo全换了试试
      

  5.   

    WSPSend WSPSendTo
    send 和sendto最终调用这两个函数来发送的.
      

  6.   

    WSPSend WSPSendTo 是在哪个DLL中的?
      

  7.   


    这个函数入口只能通过 WSPStartup()来获取,要在SPI层截获了,用你的拦截方法不太方便。
    winxp 的在 mswsock.dll 里, win2000 的在 msafd.dll 里。
      

  8.   

    难道他们都是直接调用WSPStartup()方法来发送数据,那岂不是太麻烦了.
    并且我已经找到了QQ里的send和sendTo函数并也修改了.为什么就是拦截不到呢?各位大侠都是怎么拦截的?
    谢谢
      

  9.   

    在windows平台下,一个鲜为人知的情况是,其实Winsock1.0包装的是Winsock2.0
    :)
      

  10.   


    我觉得是 send/sendto 和 WSASend/WSASendTo 都调用了 WSPSend/WSPSendTo,
    你拦截 WSA 的试试吧。
      

  11.   

    send sendto WSASend WSASendTo都拦过了,但在QQ里只找到了send 和sendto,并没发现他调用了WSASend和WSASendTo,晕了,书上说这样就能拦截到想要拦截的函数,怎么就是不见效果,除了能拦截自己调用的函数
      

  12.   

    基本肯定是你的HOOK方法有问题.
    用WINDBG,可以轻易挂截到QQ使用了sendto.
    检查一下你是否处理LoadLibrary及GetProcAddress.
      

  13.   


    你真是搞笑.WSASend(),WSASendTo()可以调用overlapped的,send()和sendto()可以吗?看下WSASend()和WSASendTo()可以包含的参数在send()和sendto()中有没有.
      

  14.   


    是不是搞笑跟踪进去就知道了.
    这些东西不是搞笑出来的.是实践出来的.
    另外,再看看WSPSend和WSPSendTo的备注再说吧.
      

  15.   


    检查一下你是否处理LoadLibrary及GetProcAddress.??是什么意思?还要处理这两个函数吗?
    我是直接用CreateRemoteThread插入到QQ.exe中去的
      

  16.   

    再去看看关于API HOOK的资料.
    搜索与LoadLibrary及GetProcAddress相关的内容.
      

  17.   

    我改了send sendto 就可以截取到QQ 发送的数据了
    不过我的问题是即使截到了,但是获取不到解密消息内容的密钥 - - 
      

  18.   

    象qq这样的聊天系统,使用的是UDP。你可以选择hook到sendto、WSASendTo或者WSPSendTo
      

  19.   

    请问你是hook哪个DLL的?源码能给我发一份吗?谢谢  [email protected]
      

  20.   

    楼主,你在winsock层去截包会漏掉超多东西的,比如ReadFile()和重叠方式的数据。就是直接拦截WSPSend/WSPSendTo也不够,Overlap和完成例程都得考虑吧。
      

  21.   

    都是在讲SEND、SENDTO,都没人讲WriteFile,我记得有一次做测试时发现QQ用的是WriteFile和ReadFile,可能QQ开发人员里有习惯搞Linux的吧,楼主不防试试。
      

  22.   


    貌似 WriteFile和ReadFile 也是最终调用了SPI的基础服务WSPSend/WSPRecv,
    在SPI层拦截应该可以。