使用Hook吧,钩住send, recv你就可以在客/服之间做一些你想做的事。
可以参考MSDN中关于api hook的论述,还有网上大把的资料。
good luck!

解决方案 »

  1.   

    To :XiangDong(木头) 
      就是不知道怎么样才能让客户端连到我的程序上啊,能告诉我吗(详细点)
    To : yue621(工作狂) 
      是啊,我也准备用HOOK,可是看了很长时间,对做这样的钩子还是不理解.
    比方说,钩那个DLL还是什么的.能给个用钩子做网络中间程序的例子吗.要不给个详细点的解说吧.
     请加我QQ(或者留个QQ),我想仔细想您(们)请教!
    谢谢
      

  2.   

    试一试转发器的思路,即:
    客户短<-->端口A [我的处理程序]端口B <--> 服务器端口A收到的数据原封不动发给服务器
    断口B收到的数据原封不动的发给客户端。当然,数据根据需要留一份记录。
      

  3.   

    客户端得端口当然是随意的啦,只要知道服务器的就行了。对于客户端而言, 转发器就是服务器。 因此转发器只要在与服务器端口一样的端口上监听就行了。然后转发器在把数据发到真正的服务器上。
    图示(假设服务器端口为8088, 0表示任意端口):
    未处理前
     客户端(0)<--->服务器(8088)
    处理后
     客户端(0)<--->转发器(8088)--你的处理--转发器(0) <--->服务器(8088).
      

  4.   

    To:whoo(谁) 
      哦,这样啊.还有个问题,那就是怎么样让客户端连到自己的机器上呢?那个客户端没有让人输入服务器IP的地方啊,他把服务器IP存在了自己的什么地方.
      谢谢!
      

  5.   

    >>他把服务器IP存在了自己的什么地方.晕,这个问题得问你啊,我怎么会知道:)找一找.ini;.cfg; .config; 注册表。应该可以找到了。
      

  6.   

    你的程序能在要sniff的程序的机器上运行吗?
      

  7.   

    To:whoo(谁)
      我的意思是,它每次连接都从某个地址下服务器的地址更新,不一定是存在机子上啊。
    To:cwanter(小菜) 
      sniff .......不明白
      

  8.   

    To  cwanter(小菜):
    是的
      

  9.   

    那就容易多了,你可以拦截该程序发出的数据包,然后自己组包向服务端发送数据。关于拦截数据包,可以参看http://www.csdn.net/Develop/article/15/15919.shtm
    http://expert.csdn.net/Expert/topic/1014/1014996.xml?temp=.901684
      

  10.   

    >>它每次连接都从某个地址下服务器的地址更新,不一定是存在机子上啊那它也得存“某个地址”。顺藤摸瓜...