C# 更改传入和传出UDP通信
读取、更改和重新发送UDP通信的最佳方式是什么 例如,我有一个服务器应用程序,它告诉主服务器它正在通过端口3209上的UDP发送数据包。它发出“我还活着,我的ip是xxx.xxx.xxx.xxx,我目前有3个客户端连接到我。”主服务器然后回答,“你好xxx.xxx.xxx.xxx,我在那里看到你了。” 服务器的MITM(中间人)向主服务器发送数据包的最佳方式是什么?我希望能够将“我还活着”更改为“我改变了”,甚至将“当前连接了3个客户端”更改为“当前连接了0个客户端”C# 更改传入和传出UDP通信,c#,udp,packet,C#,Udp,Packet,读取、更改和重新发送UDP通信的最佳方式是什么 例如,我有一个服务器应用程序,它告诉主服务器它正在通过端口3209上的UDP发送数据包。它发出“我还活着,我的ip是xxx.xxx.xxx.xxx,我目前有3个客户端连接到我。”主服务器然后回答,“你好xxx.xxx.xxx.xxx,我在那里看到你了。” 服务器的MITM(中间人)向主服务器发送数据包的最佳方式是什么?我希望能够将“我还活着”更改为“我改变了”,甚至将“当前连接了3个客户端”更改为“当前连接了0个客户端” 当尝试为服务器所在的端口创
当尝试为服务器所在的端口创建新的UdpClient时,我会遇到“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”的例外情况。您的意思是?您应该做两件事:
UDP没有集成的安全性,也不是面向连接的,因此在这种情况下,它将更容易实现
您可以在IP数据包中伪造源IP(这样做没有实际问题),只需嗅探发送到真实IP服务器的UDP数据包。这里的主要问题是避免主服务器从真正的客户机接收真正的数据包。为此,您将不得不篡改路由方案,这并不容易做到…我最后编写了一个程序来侦听服务器发送到的端口。然后,我将所有数据重新发送到主服务器,并更改所需的值。当主服务器响应时,我将数据发送回客户端应用程序。服务器或客户端应用程序都不知道中间有一个服务器改变数据。
谢谢你的回复 就像中间人或者什么?被这个问题的框架弄糊涂了-你是在问-第三方可以截取一个用于另一个网络地址的UDP数据包,修改它,然后重新传输它吗。或者,您是在问我是否可以创建一个服务器,我的客户端将数据发送到该服务器,然后可以修改并将数据发送到另一个服务器。或者完全不同的东西?像这样,但我希望能够在客户端发送后编辑客户端发送的内容。您可以使用例如eTerCap编辑消息: