现在有一个应用程序(P1)采用SOCKET连接网络服务器通讯,我希望自己编写一个应用程序(P2),得到前边的那个应用程序(P1)中的SOCKET去发送数据?我查了好多资料还是没有解决.

解决方案 »

  1.   

    如果只是发, 那么只需要进程注入--也就是P2程序的某一块代码运行于P2程序的空间内, 然后在P1程序中找到它打开的那个socket, 调用P1程序中API的send/WSASend/SendTo/WSASendto进行发送. 同时要收的话, 就需要Hook掉p1程序中的接收api, 比如recv, wsarecv, recvfrom, wsarecvfrom, 如果P1使用异步重叠I/O进行接收的话就麻烦了, 还要hook掉所有相关的api, 比如getoverlappedresult, queuecompletionstatus等等.
      

  2.   

    下载个 Iris 软件在网络上听吧,最好用HUB接在一起
      

  3.   

    http://dev.csdn.net/develop/article/22/22765.shtm