DSi/ 3DS / Wii / Wii U / Switch parental controls master key generator.
RE and implementation by Dazzozo
SALT greetz: WulfyStylez and shinyquagsire23
, for the old (v0) key algorithm
Key extraction: GaryOderNichts, zoogie, lifehackerhansol, Myria
eiphax implementation hosted by eip and supported by hansol
This tool generates the "master key" (unlock code) for 3DS, Wii U and Switch parental controls.
Usually, one would have to contact Nintendo for this and explain the situation, or have it emailed to the account holder on file.
The main advantage of this tool over others is that it supports more recent platforms.
To use this, all that is required is the inquiry number displayed on the device. In some cases (v0/v1/v2), the date according to the system is also required.
For the v4 algorithm (see below), the device ID of the console must be provided in the additional data field.
The algorithm required will be automatically selected based on your input.
What does this support?
The current list is:
- Wii 1.0 -> 4.3: all regions (v0)
- DSi 1.1 -> 1.4.5: all regions (v0)
- 3DS 1.0.0 -> 6.3.0: all regions (v0)
- 3DS 7.0.0 -> 7.1.0: all regions (v1)
- 3DS 7.2.0 -> 11.16.0: all regions (v2)
- 3DS "8.1.2" (key 13): USA, EUR, JPN (v2) - seemingly distributed only with not-for-sale Smash demo-carts?
- Wii U 1.0.0 -> 4.1.0: all regions (v0)
- Wii U 5.0.0 -> 5.5.5: all regions (v2)
- Switch 1.0.0 -> 7.0.1: all regions (v3)
- Switch 8.0.0 -> 15.0.0: all regions (v4) - requires device ID (not the serial number) in additional data field
What is the deal with v4 (Switch 8.0.0+)?
Nintendo has changed the algorithm to require a unique device ID that is stored on the console that can be difficult to obtain without exploiting the console in some way.
The device ID can be derived from fuses or obtained from PRODINFO on the Switch.
This limits the practical usage of the generator on these firmwares, as if one is able to obtain the device ID there are likely other ways to disable parental controls.
There is currently no known way to derive/obtain the device ID through trivial/visible methods.
You can get the code for the backend here