PretendoNetwork / nex-viewer

Utility for parsing and (eventually) viewing NEX connections from WireShark network dumps
8 stars 5 forks source link

[Feature]: Add Charles "WebSocket Messages" support #31

Open jonbarrow opened 2 months ago

jonbarrow commented 2 months ago

Checked Existing

What feature do you want to see added?

Add the ability to load the WebSocket message bin dumps produced by Charles into the viewer and display their contents.

Why do you want to have this feature?

With Nintendo Network shut down the only (legitimate) way to get new dumps for NEX servers is to dump the traffic from a Switch. The Switch uses NEXv4 with PRUDPLite, which is sent over WebSockets rather than a UDP connection, meaning that using standard HTTP proxy servers like Charles are the best way to capture this data.

Charles supports exporting WebSocket sessions to raw bin files. This will dump the raw contents of each message into the specified folder as bin files. Each file is named like so: ADDRESSSEQUENCE-NUMBER[client|server].bin. For exampleg2b309e01-lp1.s.n.srv.nintendo.net_000001_client.bin`. These files have the raw PRUDPLite packets in them, making it trivial to handle them

Any other details to share? (OPTIONAL)

Work on this had already started here https://github.com/PretendoNetwork/nex-viewer/pull/23, but this is largely outdated and no longer useful. A new implementation using the rewrite is in order. It may also be better to accept these dumps only as custom files, such as .nexws files (which are just renamed zip files). That way the file can be handled just like any other packet dump (only giving the viewer the single file path) and the viewer will decompress and read each file like normal, rather than having separate "load file" and "load folder" style buttons