C# 更改传入和传出UDP通信

C# 更改传入和传出UDP通信,c#,udp,packet,C#,Udp,Packet,读取、更改和重新发送UDP通信的最佳方式是什么 例如,我有一个服务器应用程序,它告诉主服务器它正在通过端口3209上的UDP发送数据包。它发出“我还活着,我的ip是xxx.xxx.xxx.xxx,我目前有3个客户端连接到我。”主服务器然后回答,“你好xxx.xxx.xxx.xxx,我在那里看到你了。” 服务器的MITM(中间人)向主服务器发送数据包的最佳方式是什么?我希望能够将“我还活着”更改为“我改变了”,甚至将“当前连接了3个客户端”更改为“当前连接了0个客户端” 当尝试为服务器所在的端口创

读取、更改和重新发送UDP通信的最佳方式是什么

例如,我有一个服务器应用程序,它告诉主服务器它正在通过端口3209上的UDP发送数据包。它发出“我还活着,我的ip是xxx.xxx.xxx.xxx,我目前有3个客户端连接到我。”主服务器然后回答,“你好xxx.xxx.xxx.xxx,我在那里看到你了。”

服务器的MITM(中间人)向主服务器发送数据包的最佳方式是什么?我希望能够将“我还活着”更改为“我改变了”,甚至将“当前连接了3个客户端”更改为“当前连接了0个客户端”


当尝试为服务器所在的端口创建新的UdpClient时,我会遇到“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”的例外情况。

您的意思是?

您应该做两件事:

  • 发现的真实协议 服务器间通信。他们是 通过UDP进行通信,但不包括 传输的数据不是 网络协议。你应该 发现数据结构是 在服务器之间传输

  • 决定你要去哪一边 使用数据包进行操作。如果你在 其中一个服务器端,您可以 写入过滤器驱动程序,它将是 更改数据后,数据将被删除 发送或在发送之前发送 通过应用程序接收。如果你是 塞尔维亚那边不行我现在不知道 拦截网络数据包的热点


  • UDP没有集成的安全性,也不是面向连接的,因此在这种情况下,它将更容易实现


    您可以在IP数据包中伪造源IP(这样做没有实际问题),只需嗅探发送到真实IP服务器的UDP数据包。这里的主要问题是避免主服务器从真正的客户机接收真正的数据包。为此,您将不得不篡改路由方案,这并不容易做到…

    我最后编写了一个程序来侦听服务器发送到的端口。然后,我将所有数据重新发送到主服务器,并更改所需的值。当主服务器响应时,我将数据发送回客户端应用程序。服务器或客户端应用程序都不知道中间有一个服务器改变数据。
    谢谢你的回复

    就像中间人或者什么?被这个问题的框架弄糊涂了-你是在问-第三方可以截取一个用于另一个网络地址的UDP数据包,修改它,然后重新传输它吗。或者,您是在问我是否可以创建一个服务器,我的客户端将数据发送到该服务器,然后可以修改并将数据发送到另一个服务器。或者完全不同的东西?像这样,但我希望能够在客户端发送后编辑客户端发送的内容。您可以使用例如eTerCap编辑消息: