| Lockpick | |
|---|---|
| Author | shchmue |
| Type | Utilities |
| Version | 1.2.6 |
| License | GPL-2.0 |
| Last Updated | 2019/09/19 |
| Website | |
| Source | |
| This application has been obsoleted by one or more applications that serve the same purpose, but are more stable or maintained. |
Lockpick is a ground-up C++17 rewrite of homebrew key derivation software, namely kezplez-nx. It also dumps titlekeys. This will dump all keys through *_key_05 on firmwares below 6.2.0 and through *_key_06 on 6.2.0.
Note: Due to changes in firmware 7.0.0 dumping new keys from homebrew is infeasible. Check out the RCM payload that can dump the new keys, Lockpick RCM.
Features
- Dumps
titlekeysand SD seed. - Dumps all keys through
6.2.0. - Uses the superfast
xxHashinstead ofsha256when searching exefs for keys for a ~5x speed improvement. - Gets all possible keys from running process memory - this means no need to decrypt
Package2at all, let alone decompressKIPs. - Gets bis keys and
header_keywithouttsec,sbk,master_key_00oraessources. Shoutout to exelix11 for using this method in SwitchThemeInjector. Homebrew devs should be doing this instead of requiring users to provide key files.
User guide
- Use Hekate v4.5+ to dump TSEC and fuses:
- Push hekate payload bin using TegraRCMSmash/TegraRCMGUI/modchip/injector.
- Using the VOL and Power buttons to navigate, select
Console info... - Select
Print fuse info(notkfuse info). - Press Power to save fuse info to SD card.
- Select
Print TSEC keys. - Press Power to save TSEC keys to SD card.
- Launch CFW of choice.
- Open Homebrew Menu.
- Run Lockpick.
- Use the resulting
/switch/prod.keysfile as needed and rename if required by any software you're using.
You may instead use biskeydump and dump to SD to get all keys prior to the 6.2.0 generation - all keys up to those ending in 05. Lockpick will dump all keys up to that point regardless which firmware it's run on.
Notes
- To get keys ending in 06, you must have firmware 6.2.0 installed
- No one knows
package1_key_06, it's derived and erased fully within the encrypted TSEC payload. While there's a way to extricatetsec_root_keydue to the way it's used, this is unfortunately not true of thepackage1key - If for some reason you dump TSEC keys on 6.2.0 and not fuses (
secure_boot_key) you will still get everything except any of thepackage1or keyblob keys (withoutsecure_boot_key, you can't decrypt keyblobs and that's wherepackage1keys live)