我使用书里的方法对WSOCK32.DLL中的CONNECT函数进行替换,但程序的运行很奇怪,可以截取到比如:telnet smtp.163.com 25 这样在命令行下的操作。
但IE浏览网页或CUTEFTP访问FTP却无法截取到,难道他们不是用connect()函数进行连接的吗?

解决方案 »

  1.   

    See the link below, FYI: http://www.codeproject.com/dll/#Hooks
      

  2.   

    你挂接的只是 winsock api 嘛。
    在windows 下通讯,不一定非要 winsock 啊。
    如果一个通讯程序通过 windows 其他机制,例如其他网络 api 去通讯,
    则自然就不需要 winsock 这个库,自然你也就 hook 不了了。
      

  3.   

    ??不是吧,我看过别的HOOKAPI的源代码,也是HOOK了WSOCK32。DLL里的CONNECT,却能HOOK到IE的通讯,难道IE不是使用WINSOCK进行TCP/IP连接的吗?
      

  4.   

    是这样,只有代码中(注意)直接调用的API才会出现在import_setion中,所以有些API就hook不到。
      

  5.   

    直接调用?可是HOOKAPI里已经把LOADLIBRARY也考虑在内了呀
      

  6.   

    有吗?我记得他只是修改了import_setion而已,好象没有考虑LOADLIBRARY吧。
      

  7.   

    有的,在HOOK MessageBox的那个例子里考虑了LOADLIBRARY,而且很奇怪,我HOOK connect()函数,GUI界面的好象确实不行,我自己写的发EMAIL的也截取不到,但发送会失败,而CONSOLE界面的倒可以,想不通这是为什么?!!
      

  8.   

    IE肯定会通过connect的,一般connect中只有连接网站的IP