Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] MUnique OpenMU Network Analyzer (Source included)

Joined
Aug 6, 2005
Messages
552
Reaction score
298
Hello,
as a little new year present I release a network analyzer tool today :)
This little tool can be used to analyze the network traffic between a server and client, when they use the mu online protocol.
It acts as a proxy, which means it waits for incoming connections and connects to the actual server when a connection arrives. It then forwards all the traffic between server and client. It also decrypts incoming and encrypts outgoing traffic to allow to take a closer look at the messages. In the future it might also be possible to send custom data packets to server and client - to test their reactions.

By default the analyzer contains packet definitions for packets which are sent between game client and game server, defined by two separate XML files. However, it's not limited to that. For example, you could basically write other packet definitions and use it to analyze the communication between connect server and game client, too. You can also edit these xml files on the fly - as soon as they change, the analyzer reloads them automatically.

Usage
First, enter your local port, on which the tcp/ip listener should run at. For example, I run it at port 55900.
Next, enter the ip and port of the (game) server you want to connect. For example, I run a game server at 55901 on my local machine (127.x.x.x).

Next, change the MU version, if it's different from season 6. You can change this anytime you want, however it only has effect on new connections.
Selecting the correct MU Version is required to correctly de & encrypt the network traffic. Currently, there are 3 options for that.

Finally, click on 'Start Proxy' - then the application will listen on port 55900 and is waiting for client connections.
As soon as a client connects, it will be listed in the 'Connection' list and the data packets are shown in the grid. When you click on one packet, it extracts the included information based on the configured packet definition (xml files). It supports multiple concurrent connections, so when you click on one, you'll see its traffic.

Context Menu

The connection list has the following context menu items:

  • Disconnect: Disconnects a connected client
  • Save to file: Saves the captured traffic into a file (*.mucap).
  • Load from file: Loads the captured traffic from the file, so you can continue your work.
  • Packet Sender: Opens a new window with a simple packet sender.

Screenshot:
UqO33rh - [Release] MUnique OpenMU Network Analyzer (Source included) - RaGEZONE Forums


Known limitations
Incomplete packet definitions
As it's very time consuming to write the definition for every single packet structure, I only did it for the most common ones between game server and game client. Feel free to submit pull requests to make them complete :)

Sourcecode:
Binaries:

Requirements: Installed .NET 5+
 

Attachments

You must be registered for see attachments list
Last edited:
Joined
Aug 6, 2005
Messages
552
Reaction score
298
I extended the analyzer a bit, but have no updated release yet. This may still take a few days as I’m currently busy IRL :-/

Just to sum up some of the changes since first release:
- It supports now three different protocol encryptions: 0.75 (very first SimpleModulus), Season 0 - 6(E1), Season 6E3 (v1.04d gmo).
- Load/Save of your recorded sessions
- Simple packet sender
- Improved network stack with reduced memory allocations and increased speed (uses byte Spans and System.IO.Pipelines)
- Minor fixes/improvements
 
Initiate Mage
Joined
Sep 21, 2006
Messages
4
Reaction score
1
Hey this sounds really interesting. Are you planning on supporting the last version of GMO ?
 
Initiate Mage
Joined
Aug 3, 2020
Messages
1
Reaction score
0
Hello...anyone who has used Cytoscape might be familiar with the Network Analyzer tool in Cytoscape which is used to calculate the degree distribution of the network. I did the same, plot the degree distribution and fit a power law y = ax(squared b) where b is the slope. Cytoscape gives the R-squared and correlation values of the network.

 
Last edited:
Junior Spellweaver
Joined
Jan 13, 2007
Messages
102
Reaction score
19
Of course, it’s also possible to connect to another computer. You just have to set the correct target IP and port.
I did, and it does not work for some reason 164.132.148.136:55926
I also used a telnet to check if a connection exist
 
Last edited:
Skilled Illusionist
Joined
Dec 8, 2004
Messages
315
Reaction score
18
Hello,
as a little new year present I release a network analyzer tool today :)
This little tool can be used to analyze the network traffic between a server and client, when they use the mu online protocol.
It acts as a proxy, which means it waits for incoming connections and connects to the actual server when a connection arrives. It then forwards all the traffic between server and client. It also decrypts incoming and encrypts outgoing traffic to allow to take a closer look at the messages. In the future it might also be possible to send custom data packets to server and client - to test their reactions.

By default the analyzer contains packet definitions for packets which are sent between game client and game server, defined by two separate XML files. However, it's not limited to that. For example, you could basically write other packet definitions and use it to analyze the communication between connect server and game client, too. You can also edit these xml files on the fly - as soon as they change, the analyzer reloads them automatically.

Usage
First, enter your local port, on which the tcp/ip listener should run at. For example, I run it at port 55900.
Next, enter the ip and port of the (game) server you want to connect. For example, I run a game server at 55901 on my local machine (127.x.x.x).

Next, change the MU version, if it's different from season 6. You can change this anytime you want, however it only has effect on new connections.
Selecting the correct MU Version is required to correctly de & encrypt the network traffic. Currently, there are 3 options for that.

Finally, click on 'Start Proxy' - then the application will listen on port 55900 and is waiting for client connections.
As soon as a client connects, it will be listed in the 'Connection' list and the data packets are shown in the grid. When you click on one packet, it extracts the included information based on the configured packet definition (xml files). It supports multiple concurrent connections, so when you click on one, you'll see its traffic.

Context Menu

The connection list has the following context menu items:

  • Disconnect: Disconnects a connected client
  • Save to file: Saves the captured traffic into a file (*.mucap).
  • Load from file: Loads the captured traffic from the file, so you can continue your work.
  • Packet Sender: Opens a new window with a simple packet sender.

Screenshot:
UqO33rh - [Release] MUnique OpenMU Network Analyzer (Source included) - RaGEZONE Forums


Known limitations
Complex packet structures
Currently it's not possible to define some more complex packet structures (e.g. arrays of sub-structures) by the xml configuration. I didn't have the time yet, but I don't think this is hard to extend. If you want to work on it, feel free to create an Issue and send me a pull request.
Incomplete packet definitions
As it's very time consuming to write the definition for every single packet structure, I only did it for the most common ones between game server and game client. Feel free to submit pull requests to make them complete :)

Sourcecode:
Binaries:

Requirements: Installed .NET Framework 4.6.2

I dunno if this is possible if you can put something like port forwarding.
 

Attachments

You must be registered for see attachments list
Back
Top