Skip to content

Instantly share code, notes, and snippets.

There is no warranty or liability, this is my own setup notes!

  1. Install Ubuntu ${LATEST} LTS, update/upgrade all packages, don't install normal NGINX.
  2. Install legacy-nginx following instructions at https://github.com/rem-verse/legacy-nginx.
  3. Create a DS certificate using https://github.com/KaeruTeam/nds-constraint - ensure you concatenate nwc.crt, as Nginx doesn't let you add a chain file unlike Apache. (Also, maybe a Wii certificate using https://github.com/shutterbug2000/wii-ssl-bug - TODO ask Shutter if selfsigned is ok).
  4. Copy NGINX config to /usr/local/nginx/conf/nginx.conf.

Configs!

nginx.conf

@InternalLoss
InternalLoss / vv1_score.md
Created April 15, 2021 00:49
Virtual Villagers (1) Score Page
GET /scoresVV.php?game=0&name=Billy&score=888&hours_played=0&techpoints_earned=118&babies_made=1&food_gathered=135&people_cured=0&crabs_found=3&peak_population=7&deaths=0&oldest_villager=25&number_events=0&twins_birthed=0&triplets_birthed=0&version=1030&digest=0o0090f00t0r00gil0096x00g6i0090l&game_starttime=27&puzzles_solved=1 HTTP/1.1
User-Agent: GameWebBrowser
Host: www.ldwsoftware.com
Connection: Keep-Alive
Cache-Control: no-cache

HTTP/1.1 200 OK
Date: Thu, 15 Apr 2021 00:42:06 GMT
Server: Apache/2.2.15 (CentOS)
@InternalLoss
InternalLoss / beybladeplus.md
Last active April 10, 2021 18:03
Beyblade Burst Beylogger Plus & Puzzle (3DS) API explanation

Beyblade Burst Beylogger Plus & Puzzle for Nintendo 3DS

This Japanese app gets delisted from eShop on 14 April 2021, so I got bored and decided to nose at it since it's free.

When booting the app, it ensures that you have the correct time for JST, by sending a POST to https://beyblade.takaratomy.co.jp/api/3ds/v1.0/_is_time_correct with the following form-data attributes:

APP_TOKEN	application/octet-stream		<64 char string>
RID	application/octet-stream		<8 char string>
UT	application/octet-stream		1618002522

Switch TLS Dumping Guide (Charles)

This guide is for dumping Switch TLS traffic using the Charles web proxy. Please note that this is paid software.

Most Switch communications are over TLS - this includes NEX and Eagle communications (for Nintendo Switch Online)* as well as other servers such as BAAS (friends/status) and NPNS (notifications)

*NPLN, the new Switch online servers that Monster Hunter Rise demo used, cannot be dumped with Charles currently as it doesn't support gRPC - use grpc-dump to dump these communications - the gPRC section will explain this better.

While this doesn't carry much risk in theory, this is risky and could get your Switch banned as you must send your own Switch-unique client certificate.

Dumping Console-Unique Certificate

@InternalLoss
InternalLoss / tls_guide.md
Last active January 6, 2024 20:43
3DS/WiiU TLS traffic guide

Dumping Nintendo TLS Traffic

This guide is for capturing encrypted web traffic between the Internet and a 3DS or Wii U. You will need a hacked console for this.

NOTE: This traffic is sensitive - it will likely contain sensitive data such as a hashed form of your NNID password, and the device's unique identifiers including their unique certificates - as such, please be careful who you share these dumps with! They should be stored safely.

TLS Traffic

Dumping TLS traffic requires a proxy - we suggest mitmproxy which is both FOSS and cross-platform. It also has a web view which is useful for saving the recorded data (though this can also be done via CLI, as explained later).