Tutorial
Updated
How to get Switch Keys for Hactool/XCI Decrypting
This thread is deprecated
For a faster, easier and more up-to-date way of getting keys use Lockpick_RCM by shchmue
If you still want to follow this tutorial and end up with less keys, continue reading the Thread.
WARNING
- DO NOT GIVE OUT ANY OF YOUR KEYS TO ANYONE! I CANNOT STRESS THAT ENOUGH!
- DO NOT SHARE YOUR KEYS BETWEEN MULTIPLE SWITCHES THAT YOU DO/DON'T OWN! SOME ARE CONSOLE-UNIQUE
- DO NOT ASK ME FOR KEYS
LEGEND
- SBK
SecureBootKey
- TSEC
Tegra Security Co-processor Key
- eMMC
Embedded MultiMediaCard (Switch's Onboard Storage)
SecureBootKey
Tegra Security Co-processor Key
Embedded MultiMediaCard (Switch's Onboard Storage)
GOAL
End up with 83+ keys including SBK and TSEC keys. Get Master Key's 0-5. (Master Keys 6 onwards is not done in this tutorial)
Reminder, if you want more up-to-date and much more convenient way to get your Switch's Keys, use Lockpick by shchmue (available in nx-appstore/homebrew store)
Tutorial — (Outdated for Switch's on firmware 6.x or newer)
#1 - Dumping System Keys (Biskeydump)#2 - Dumping Required Files#3 - Hactool Preparation#4 - Dumping KeysFinal WordsTroubleshooting
We need to get your Secure Boot Key (SBK) and Tegra Security Co-processor Key (TSEC) before we can get the main keys.
These are 100% console unique.
- Download and extract biskeydump.bin from biskeydumpvx.zip
- Follow this tutorial but instead of using CTCaer's Hekate Mod .bin file, use the biskeydump.bin file
- If the QR Code is Blue, Scan the QR Code with your Phone, Laptop e.t.c
- If you cant find a device you can scan with, type them out into your PC/Laptop (Its highly recommended to scan the QR Code, as a lot of characters can look like another, O0, Il, rn can look like m, e.t.c) - Once you have the biskeydump of your System, store all the keys you received somewhere safe, I recommend a secure cloud storage aswell as a USB Stick, perhaps even print it.
- Don't give this to ANYONE, Seriously.
If you get any errors please go to the Troubleshooting Tab.
- Download and extract biskeydump.bin from biskeydumpvx.zip
- Follow this tutorial AGAIN but this time use CTCaer's Hekate Mod.
- "Tools" -> "Backup..." -> "Backup eMMC BOOT0/1"
- "Tools" -> "Backup..." -> "Backup eMMC SYS"
- Back all the way to the first menu, and choose "Power off" - Take the microSD Card out of your Switch and into your PC.
- Copy both "BOOT0" and "BCPKG2-1-Normal-Main" from "sd:/backup/xxxxxx/" (xxxxxx is different for everyone) to "hactool" on your Desktop (create the "hactool" folder)
- Rename them with .bin at the end, "BOOT0.bin", "BCPKG2-1-Normal-Main.bin"
- Follow this tutorial AGAIN but this time use CTCaer's Hekate Mod.
- Download and install Python 2.7.x - NOT Python 3.x.x
When installing, it will ask you what features you want installed, scroll to the bottom and make sure "Add Python to Path" has "Entire Feature Installed to HDD" option chose (No Red X Icon), otherwise the scripts wont find Python and WILL fail - Download and extract hactool TO THE DESKTOP AND NAME THE FOLDER "hactool"
On Linux/MacOS: clone and build hactool manually - Right-click this (script originally by tesnos6921, patched by shadowninja108, jakibaki and shchmue)
- Click "Save link as" / "save as"
- Set "Save as type" to "All Files"
- Name it "keys.py"
And finally save it to the hactool folder you placed in the Desktop.
NOTICE TO GBATEMP STAFF: The "keys" inside this file, are NOT keys, they are SHA digest hashes used to search through files to find text that matches, which would be the keys.
- Download and install Python 2.7.x - NOT Python 3.x.x
- Press WIN(Btn)+R to open "Run", type "cmd" and press Ctrl+Shift then Enter to open Command Prompt as an Administrator
- Type (in order) or Copy the following and paste into Command Prompt (Some Windows Versions use Right Click to Paste, some use CTRL+C)
python -m pip install --upgrade pip
pip install lz4
cd Desktop/hactool
python keys.py SBK_Here_From_Biskeydump TSEC_Here_From_Biskeydump - It should say: "Now you can do hactool --keyset=keys.txt to use them!", if it does, and there's no warning messages, you're good to go!
You now have a keys.txt file with your console-specific keys inside.
Rename as needed by any software that requires a different name or file extension, it doesn't matter.
Though I highly recommend renaming it to prod.keys as this filename for Key file's is becoming a popular choice with other software
There may be more keys, as the Switch's lifecycle goes on, more and more keys will be needed as the firmwares grow and grow.
- The Hactool warning:
Code:
[WARN] prod.keys does not exist.
- if you want to place your "keys.txt" file their, put "keys.txt" on your Desktop and run the following with Administrator Command Prompt (Step #4.1 for instructions):
Code:mkdir -p %USERPROFILE%\.switch move "%USERPROFILE%\Desktop\keys.txt" "%USERPROFILE%\.switch\prod.keys"
- The Hactool warning:
#1 ISSUES:
-
Code:
Red QR Code Outline
- If there's a new version of biskeydump out, try using the newer biskeydump.bin -
Code:
QR Code not being scanned by your Reader
- Clean your camera lens
- Be in a bright room
#4 ISSUES:
-
Code:
File "keys.py", line ... print message ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(message)?
- You installed Python 3.x.x when you must use 2.7.x, uninstall python, logout of windows (important it removes python from PATH) and follow Step #3.2 then move back to #4.1 -
Code:
import lz4.block File "C:\Python27\lib\site-packages\lz4\__init__.py", line 17, in <module> from ._version import ( # noqa: F401 ImportError: DLL load failed: The specified module could not be found.
-
Last edited by shchmue,