开发者

Changing incoming and outgoing UDP Communication

开发者 https://www.devze.com 2023-02-13 22:21 出处:网络
What is the best way of reading, changing, and resending UDP communications? For instance i have a server application that tells a master server it\'s alive sending a packet over UDP on port 3209. It

What is the best way of reading, changing, and resending UDP communications?

For instance i have a server application that tells a master server it's alive sending a packet over UDP on port 3209. It sends out "I'm alive, my ip is xxx.xxx.xxx.xxx and I have currently 3 clients connected to me." the master server then responds, "Hello xxx.xxx.xxx.xxx i see you there."

Whats the best way of MITM (Man In The Middle) of the server sending its packet to the master server? I would like to be able to change "I'm alive," to somethin开发者_高级运维g like, "I'm changed," or even "currently 3 clients connected" to "currently 0 clients connected"

When trying to make a new UdpClient to the port the server is on i get a "Only one usage of each socket address (protocol/network address/port) is normally permitted" exception.


you mean packet analysis?


You should do two things:

  1. Discover real protocol of interserver communication. They are comunicate over UDP but structure of the data trasfered is not the network protocol. You should discover data structure are transfered between servers

  2. Decide on wich side you are going to operate with packets. If you are on one of the servers sides, you can write filter driver wich would be change data before it will be sending or before it will be recieving by application. If you are not in the serber side I dont kwnow hot to intercept network packets


UDP has no integrated security and is not connection oriented so in this case It will be much easier.

You can forge the source IP in the IP packet (no real problem doing that) and just sniff the UDP packets sent to the real IP server. The main problem here is avoiding the main server to receive the real packets from the real client. For that you'll have to tamper with the routing scheme which is not really easy to do...


I ended up writing a program to listen on the port that the server was sending to. I then resent all the data to the master server with the values changed that i needed. When the master server responded back i then sent that data back to the client application. Nor the server or the client application know there is a server in the middle changing the data.

Thanks for all the replies!

0

精彩评论

暂无评论...
验证码 换一张
取 消