Homebrew RELEASE Nintendo Switch SD to NSP Dumper

  • Thread starter Thread starter caitsith2
  • Start date Start date
  • Views Views 172,334
  • Replies Replies 246
  • Likes Likes 60
You can click on the various failures, and if a text field pops up, I need to know what it is saying, (redacting keys as appropriate.)

This is my error. It is exactly the same for each NCA except for the paths.
hactool -t nax0 --sdseed=[redacted] --sdpath="/registered/00000000/[redacted].nca" --plaintext="C:\Tools\SwitchSDTool\NCA\[redacted].nca" "D:\Nintendo\Contents\registered\00000000\[redacted].nca\00"
Standard Output:
Error Output: [WARN]: Failed to match key "master_key_seed", (value "[redacted]")
[WARN]: Failed to match key "masterkey_4x_seed", (value "[redacted]")
[WARN]: Failed to match key "devicekey_seed", (value "[redacted]")
[WARN]: Failed to match key "devicekey_4x_seed", (value "[redacted]")
[WARN]: Failed to match key "dev_master_key_seed", (value "[redacted]")
[WARN]: Failed to match key "dev_package1_key_seed", (value "[redacted]")
[WARN]: Failed to match key "dev_per_console_key_seed", (value "[redacted]")
[WARN]: Failed to match key "rsa_oaep_kek_generation_source", (value "[redacted]")
[WARN]: Failed to match key "rsa_private_kek_generation_source", (value "[redacted]")
[WARN]: Failed to match key "eticket_rsa_kek_source", (value "[redacted]")
[WARN]: Failed to match key "eticket_rsa_kekek_source", (value "[redacted]")
[WARN]: Failed to match key "eticket_rsa_kek", (value "[redacted]")
[WARN]: Failed to match key "ssl_rsa_kek", (value "[redacted]")
[WARN]: Failed to match key "ssl_aes_key_x", (value "[redacted]")
[WARN]: Failed to match key "ssl_rsa_key_y", (value "[redacted]")
[WARN]: Failed to match key "sd_card_save_key", (value "[redacted]")
[WARN]: Failed to match key "sd_card_nca_key", (value "[redacted]")
[WARN]: Failed to match key "capsrv_hmac_key", (value "[redacted]")
[WARN]: Failed to match key "keyblob_mac_seed", (value "[redacted]")
[WARN]: Failed to match key "keyblob_seed_00", (value "[redacted]")
[WARN]: Failed to match key "keyblob_seed_01", (value "[redacted]")
[WARN]: Failed to match key "keyblob_seed_02", (value "[redacted]")
[WARN]: Failed to match key "keyblob_seed_03", (value "[redacted]")
[WARN]: Failed to match key "keyblob_seed_04", (value "[redacted]")
[WARN]: Failed to match key "normalseed_dev_00", (value "[redacted]")
[WARN]: Failed to match key "normalseed_dev_01", (value "[redacted]")
[WARN]: Failed to match key "normalseed_dev_02", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev0_00", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev0_01", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev0_02", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev1_00", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev1_01", (value "[redacted]")
[WARN]: Failed to match key "simpleseed_dev1_02", (value "[redacted]")
[WARN]: Failed to match key "sha256(master_key_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(master_key_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(master_key_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(master_key_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package1_key_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package1_key_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package1_key_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package1_key_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package2_key_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(aes_kek_generation_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(aes_key_generation_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_application_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_ocean_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_system_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(titlekek_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(header_kek_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(header_key_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(sd_card_kek_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(sd_card_save_key_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(sd_card_nca_key_source)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package2_key_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package2_key_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package2_key_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(package2_key_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(header_key)", (value "[redacted]")
[WARN]: Failed to match key "sha256(titlekek_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(titlekek_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(titlekek_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(titlekek_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_application_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_application_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_application_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_application_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_ocean_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_ocean_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_ocean_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_ocean_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_system_00)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_system_01)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_system_02)", (value "[redacted]")
[WARN]: Failed to match key "sha256(key_area_key_system_03)", (value "[redacted]")
[WARN]: Failed to match key "sha256(sd_card_save_key)", (value "[redacted]")
[WARN]: Failed to match key "sha256(sd_card_nca_key)", (value "[redacted]")
Key () must be 288 hex digits!

The error is obviously from Hactool, not your app. I searched online and couldn't find any reason for this other than bad keys. My keys file came from kezplez so I can't imagine that the content or the format is wrong.
 
Last edited by JacksonS,
This is my error. It is exactly the same for each NCA except for the paths.


hactool -t nax0 --sdseed=[redacted] --sdpath="/registered/00000000/[redacted].nca" --plaintext="C:\Tools\SwitchSDTool\NCA\[redacted].nca" "D:\Nintendo\Contents\registered\00000000\[redacted].nca\00"
Standard Output:
Error Output: [WARN]: Failed to match key "master_key_seed", (value "[redacted]")
[WARN]: Failed to match key "masterkey_4x_seed", (value "[redacted]")
---SNIP----
[WARN]: Failed to match key "sha256(sd_card_nca_key)", (value "[redacted]")
Key () must be 288 hex digits!


The error is obviously from Hactool, not your app. I searched online and couldn't find any reason for this other than bad keys. My keys file came from kezplez so I can't imagine that the content or the format is wrong.

In C:\users\[your user name here]\.switch\ there will be a file called prod.keys. Edit that file, and remove the key_blob_xx keys entirely. They are not needed, as all of the other keys have been derived from them already. Hactool is sadly very unforgiving in how it handles keys.txt such that it totally aborts if it finds something it doesn't like, instead of ignoring it, in the case of a key that it does support NOT having the right number of hex digits present in a single line.
 
  • Like
Reactions: JacksonS
Thanks, I didn't realize Hactool made a log of keys on my computer. That would explain it since I originally used a file with some incorrect formatting and those keys were still stored in the file. It is working now.
 
Updated to version 1.03
  • keys.txt no longer moved to %userprofile%.switch\prod.keys
  • keys.txt if present, or %userprofile%.switch\prod.keys parsed locally, and invalid key length keys for hactool are removed and put into tools\FixedKeys.txt. This should fix some of the hactool related problems for good.
  • Games/Language selection combined into one tab.
  • Selection of a game now shows on the language list which languages are supported.
  • Clicking on a language while a game is selected now shows that languages icon and title/developer information.
 
  • Like
Reactions: Draxzelex
caitsith2 does this app link our shared tickets to our Nintendo Network Id's as if we legitimately purchased the games ?
 
Last edited by SSG Vegeta,
If you are asking if the tickets present in the dumped NSPs contain your personal info, no, they don't. All of that info has been stripped. I am not in a position to test to see if a ticket with the personal info can be reinstalled as is, or if it is tied not only to the console it was dumped from, but ALSO the account that made that purchase.

However, tickets for game updates have no personal info in them, as this allows them to be shared to another console via local wireless.




Version 1.04
 
If you are asking if the tickets present in the dumped NSPs contain your personal info, no, they don't. All of that info has been stripped. I am not in a position to test to see if a ticket with the personal info can be reinstalled as is, or if it is tied not only to the console it was dumped from, but ALSO the account that made that purchase.

However, tickets for game updates have no personal info in them, as this allows them to be shared to another console via local wireless.




Version 1.04
  • Fixed a bug that causes duplicate entries to appear
  • The Info box now contains info on what NCA files belong to the title, when a child node of the title is selected, resolving issue #2


What I was asking was if we download a ticket that was shared is it possible to add our Nintendo Network id data to it as if we legitimately bought the game since your app allows us to build ticket files using our consoles data
 
@caitsith2 I have a banned console that has DLC installed on the nand. I dont know of a way to install it on the SD card now that I cannot connect to Nintendo servers. Any plans to be able to pull games and DLC from the nand? Or is there a way for me to install these on the SD card?
 
Last edited by evans112682,
What I was asking was if we download a ticket that was shared is it possible to add our Nintendo Network id data to it as if we legitimately bought the game since your app allows us to build ticket files using our consoles data

No, that is certainly not possible to do for multiple reasons including that your legitimate purchases are not based on a local ticket but a remote server secured by Nintendo.

@caitsith2 I have a banned console that has DLC installed on the nand. I dont know of a way to install it on the SD card now that I cannot connect to Nintendo servers. Any plans to be able to pull games and DLC from the nand? Or is there a way for me to install these on the SD card?

You have to uninstall the DLC and then reinstall the NSP via CFW. This tool does create NSP for Games, DLC and Updates.
Sorry misread your question. As of now the tool doesn't extract from sysNAND. Since you are a banned anyway what difference does it matter if it is your DLC or just a pirated NSP? Personally I would just delete the DLC on SysNAND and reinstall a pirated NSP.

EDIT: Actually spoke briefly w/ caitsith2 and he said it's pretty simple to add that feature (extracting from the NAND) and will probably add it. It's true some people may have filled up their NAND, got banned and can't actually dump their purchased content. It's a nice feature to have regardless of a ban or not as many users did fill up their NAND and went to SD later on to expand, then to CFW and for some strange reason we can't move content between sys and sd.
 
Last edited by tubebar,
@evans112682 - Done. NSP dumping from USER nand partition is now possible.

@Deck of Noobs - PRODINFO.bin contains some system specific things like calibration data, your system's serial number, your CDN access certificates, your eticket RSA keys, among other things. You do need it, but it isn't the only thing needed.

Version 1.05
  • Dumping from USER nand partition now possible. Just select the USER nand partition as your SD directory to do so.
  • Added a combo box and a means to cache RSA keys by Switch Serial number. This means PRODINFO.bin is only needed once, to initially load the RSA key.
  • Selecting SD Directory now Enables Find SD key.
  • Selecting SYSTEM nand directory now Enables both Find SD Key, and Load RSA Key. (Also deselects the current switch serial number from the combo box as well.)
  • eticket_rsa_kek text box disabled on program startup, if the correct key already exists in the configuration at startup.
 
  • Like
Reactions: ganons
No, that is certainly not possible to do for multiple reasons including that your legitimate purchases are not based on a local ticket but a remote server secured by Nintendo.



You have to uninstall the DLC and then reinstall the NSP via CFW. This tool does create NSP for Games, DLC and Updates.
Sorry misread your question. As of now the tool doesn't extract from sysNAND. Since you are a banned anyway what difference does it matter if it is your DLC or just a pirated NSP? Personally I would just delete the DLC on SysNAND and reinstall a pirated NSP.

EDIT: Actually spoke briefly w/ caitsith2 and he said it's pretty simple to add that feature (extracting from the NAND) and will probably add it. It's true some people may have filled up their NAND, got banned and can't actually dump their purchased content. It's a nice feature to have regardless of a ban or not as many users did fill up their NAND and went to SD later on to expand, then to CFW and for some strange reason we can't move content between sys and sd.
The reason is because the DLC I purchased isn't on CDNSP. I want it for my my other switch that is also banned. Both Switch's are for my two boys who want the same set up.

--------------------- MERGED ---------------------------

@evans112682 - Done. NSP dumping from USER nand partition is now possible.

@Deck of Noobs - PRODINFO.bin contains some system specific things like calibration data, your system's serial number, your CDN access certificates, your eticket RSA keys, among other things. You do need it, but it isn't the only thing needed.

Version 1.05
  • Dumping from USER nand partition now possible. Just select the USER nand partition as your SD directory to do so.
  • Added a combo box and a means to cache RSA keys by Switch Serial number. This means PRODINFO.bin is only needed once, to initially load the RSA key.
  • Selecting SD Directory now Enables Find SD key.
  • Selecting SYSTEM nand directory now Enables both Find SD Key, and Load RSA Key. (Also deselects the current switch serial number from the combo box as well.)
  • eticket_rsa_kek text box disabled on program startup, if the correct key already exists in the configuration at startup.
Thanks for adding this feature. Great tool


@caitsith2
EDIT: Just tried it on SysNand and it works great. How do i see title keys?
 
Last edited by evans112682,
  • Like
Reactions: SSG Vegeta
The reason is because the DLC I purchased isn't on CDNSP. I want it for my my other switch that is also banned. Both Switch's are for my two boys who want the same set up.

That CDNSP issue should change now that you got them :) idk where the titlekeys are, have to wait for caitsith2 on that one.
 
Hi, do nsp build with this tool have all the xml a "proper" nsp should have?
I mean:
.programinfo.xml
.cnmt.xml
.legalinfo.xml
.nacp.xml
New ones from BBB incorporate these xml files and they claim that's the proper way of making a nsp file.
 

Site & Scene News

Popular threads in this forum