Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: Add chls packet dump support (Charles Sessions) #30

Open
1 task done
jonbarrow opened this issue Aug 12, 2024 · 0 comments
Open
1 task done

[Feature]: Add chls packet dump support (Charles Sessions) #30

jonbarrow opened this issue Aug 12, 2024 · 0 comments
Labels
approved The topic is approved by a developer feature A feature request

Comments

@jonbarrow
Copy link
Member

jonbarrow commented Aug 12, 2024

Checked Existing

  • I have checked the repository for duplicate issues.

What feature do you want to see added?

Add the ability to load chls dumps into the viewer and display their (relevant) 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.

Currently it is not possible to use any other standard Charles packet format (besides the raw files produced by "Save WebSocket Messages", mentioned in #31) for this purpose. This is because Charles fails to re-encode WebSocket messages correctly when converting the chls dump into something more usable like a chlsj (Charles JSON Session) or HAR (also a JSON file). The WebSocket messages are either no longer encrypted, get corrupted, or are entirely missing (even reopening them in Charles shows this). This means that chls dumps MUST be supported.

This would also be useful for displaying HPP packets, which are sent over HTTP rather than PRUDP

Any other details to share? (OPTIONAL)

Charles uses Java object serialization for chls dumps. This means the raw contents of the Java classes are encoded directly into the file, much like pickle for Python. This is non-trivial to work with as we essentially need to reimplement the entire serialization protocol from scratch in JavaScript. An attempt at this has been started at https://github.com/PretendoNetwork/java.io

@jonbarrow jonbarrow added awaiting-approval Topic has not been approved or denied feature A feature request approved The topic is approved by a developer and removed awaiting-approval Topic has not been approved or denied labels Aug 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved The topic is approved by a developer feature A feature request
Projects
Status: Todo
Development

No branches or pull requests

1 participant