How to create your own sigpatches.

****************************************************************************************
:switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch:
Hello there, with all the fuss created by the DCMA plea of the N to iTotalJustice, I think this little compendium will help somebody.

For now the sigpatches for all firmware and Atmosphère can be downloaded from Sigpatches for Atmosphere (Hekate, fss0, fusee & package3) thread here on GBATemp :D

@mrdude is working on new set of programs running in Windows and will not need Python at all, keep an eye on his thread.
And @dogcsty is working on a Homebrew capable of generate the sigpatches on the console directly.
Booth applications are getting almost end-user maturity.

@mrdude release the Sigpatch IPS Creator New store, allowing to generate any new patches for any firmware and Atmosphère without need of updating the software.

For using the new Sigpatch IPS Creator you need:

  1. Download the latest version from github.
    Now is on:
    New version on downloads section
  2. Right click the recent downloaded file, and select properties:
    1661373682261.png
    , then unblock the file:
    1661373835973.png
    , this is a «security» measure of windows, marking down the downloaded files as insecure even if they are safe.
  3. Extract the file to a folder on your hard drive, by example c:\IPSCreator
    1662496908803.png
  1. At the first run of "IPS_Patch_Creator.exe " you may get a warning:
    1661374018518.png
    because is a «unrecognized app» meaning MrDude has not payed thousands of dollars to Microsoft for «authenticate» the app, so you should press «Run anyway» button to run the program. If you don't trust you can use a real antivirus (no defender) and check the file.
  2. At the first start of the program, you are welcomed with a few configurations:
    1661374242114.png
    By now you can choose the defaults and press «Save» button.
    This configurations are for future firmwares, more explanation on the post by MrDude. After press «Save» you are asked to save the config
    1661374387434.png
    press yes to commit the config to disk.
  1. The program require you to provide the encryption set of keys for the console. There are several ways to get them:
    1. using Lockpick_RCM, follow the guide:https://gbatemp.net/threads/how-to-get-switch-keys-for-hactool-xci-decrypting.506978/ OR https://nh-server.github.io/switch-guide/user_guide/emummc/making_emummc/
    2. Inside the program on the «Help» -> «Online Information», there are a set of cypher URLs one of them is very useful.
    3. Using web search.
    4. The versions 1.5.8 or newer are capable of generate the Needed keys from a folder containing the most recent firmware, for that se the step 3.
  2. When you run the program without the needed keys, it prompts:
    1661377417544.png
    , if you press "yes" a KEYS.DAT file is created for you on the tools sub-folder, you can edit the file and put the values or use the KeyData tab to write the values of your PROD.KEYS file:
    1661377600726.png
  3. if you like the program can generate the needed keys, you need to provide a folder with the most recent firmware files, first go to KeyData Tabulator and press the «KeyGen» button, you are asked for a folder with the firmware files.
    1719709460505.png
You can use the tabs «Loader», «ES», «ES2», «FS» and «NFIM» to create the patches.
On each tab there is a button named «Make Patch», you can use the button to browse for the needed files or folder, also you can drag and drop to that button the files or folder from an explorer window.
On each you can generate a different set of patches:

Loader
On this tab you can generate the patches set for Atmosphère.
Loader Patch are Required for:
  • Running NRO Forwarders and Installed homebrews.
  • Running Installed XCI games.

Loader patch not required to:
  • Run (some) previously installed NSP. (if valid tickets exist)
  • Run non installed homebrew.
  • Install NSP/XCI - (but will not run these if a valid ticket does not exist).
In order to create the patches, you need to provide the path to fusee-secondary.bin or package3 file. Could be an official one or compiled by yourself.
Only Atmosphère 0.8.5 and newer are supported.
1662498674563.png

The generated patches are on the folder \atmosphere\kip_patches\loader_patches and the file \bootloader\patches.ini relative to the folder where IPS Patch Creator is run.

ES & ES2
ES patches stand for Eticket Services.
ES Patches are required to:
  • These are needed for run and install raw and untouched NSP files either dumped from Nintendo's CDN or someone's console.
  • ES patches are additionally needed to run pirated commercial NSPs.
ES Patches are NOT required to:
  • Run installed XCI
  • Run installed NRO forwarders.
  • Run homebrew
  • Install XCI files.
For creating the patches, you need to provide the path to the folder with the files of a firmware for console.
Works only for firmware 9.0.1 and above.

Both tabs generate the same sigpatches, using different algorithms, ES uses an algorithm what patches only on a spot, is traditionally know as «Alternate».
ES2 uses the original algorithm which patches on three different spots. Both of them works the same and is up to you which one to use, is more a manner of preference because they are equivalent.
1662500122439.png

The sigpatches are generated on the sub-folder \atmosphere\exefs_patches\es_patches\ where the IPS Patch Creator is run.

FS
FS is short for fs_nosigchk.
FS Patches required to:
  • Run installed XCI/NRO forwarders, and will give a corruption error when trying to run the installed XCI or NRO forwarder if no fs patches are applied or are wrong (you will also need to reinstall the game or nro forwarder if this happens).
  • The FS patches allow the usage of converted NSP files, such as homebrew on NSP files or converted XCI files.
  • FS patches are required to install/run NSP and XCI (without needing to convert the header) files.
Fs Patches not required to:
  • Run installed NSP files with valid tickets.
  • Run Homebrew
  • Install NSP/XCI - (with a valid header)
Only firmware 9.0.1 and above is supported.
1662500405307.png

The generated IPS files are on the sub-folder \atmosphere\kip_patches\fs_patches and the file \bootloader\patches.ini

NFIM
The NFIM patches, know as nfim_ctest, where «ctest» is short for Connection Test, are patches for skip the internet connection test, So you can play on a LAN without being online.
All current firmware versions are supported.
1662500667281.png

The patches are generated on the sub-folder \atmosphere\exefs_patches\nfim_ctest\

Once all the patches you want are generated, you can copy the folders atmosphere and bootloader to the root of your SD Card.

A very helpful feature is the possibility of upload the patches to your console using FTP, before you can use, you need to config the connection data:
1661379908766.png
,
1661379931932.png
,
1661379974097.png
once you put the correct IP address of your console and the user/password to connect you can push "save".

Then use the ftp feature to send the patches:
1662500827396.png
.



If you like to generate the patches directly on the console, @dogcsty is working on a Homebrew for that.

----To Do: add steps for the Homebrew ----


:switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch::switch:
****************************************************************************************

With these new applications the use of the Old Python scripts is deprecated and useful only for historians :D

If you really want run the scripts you can use the
This steps help you to build a new version of sigpatches if new firmware or Atmosphère is released or if you compile Atmosphère from source and make changes like add a new bootlogo @binkinator explain us how to do that on https://gbatemp.net/threads/custom-boot-logo-for-switch.569031/post-9839714

First at all thank you very much to @mrdude for his hard work, really to him belong all the credit.

On the thread Info on SHA-256 hashes on FS patches mrdude explain how the patches are created and share with all of us his work and his scripts to create new sigpatches.

For that scripts works you need Python, first step get python:

Download and install Python, for Windows you can use https://www.python.org/downloads/, but be sure of select the option «Add Python 3.XX to PATH».
1659196452425.png

After you have a Python environment working, open a command line (CMD.EXE) and execute the next commands, in order to get the prerequisites of the scripts:

Code:
python.exe -m pip install --upgrade pip
pip install bitstring

Download the latest version of the scripts on the thread (https://gbatemp.net/threads/info-on-sha-256-hashes-on-fs-patches.581550/post-9783677) for now they are on the post # 205.

Uncompress the file «AutoIPS-Patcher.zip» on a local folder, for example, «C:\AUTOIPS», must look like:
1659196724938.png


Then copy your prod.keys file to the folder «c:\AutoIPS\scripts\» and rename it «keys.dat» IMPORTANT IF YOU USE EXPLORER BE SURE THE EXTENSIONS AREN'T HIDDEN, SO YOU DON'T END WITH keys.dat.keys file instead of keys.dat

Tip from @User154 ,
you can get your prod.keys files using Lockpick_RCM, follow the guide: https://nh-server.github.io/switch-guide/user_guide/emummc/making_emummc/

Get the files for the firmware you want to create, darthsternie it's you pal, or you can use NXDumpTool, TegraExplorer or GoldLeaf to dump the current firmware to the SD Card on your console. Extract all files to a local path, by example, «C:\FW1412», your folder must look like:
1659197200014.png

Download the latest Atmosphère files from https://github.com/Atmosphere-NX/Atmosphere/releases , and extract «atmosphere\package3» to a local path, by example: «C:\ATM132».

On a command line go to the folder where you extract AutoIPS and execute the command «Python MENU.PY»:

Bash:
C:\AutoIPS>python menu.py
=========================================================================
Make sure you have keys.dat in the scripts folder. Menu/Scripts by MrDude
=========================================================================
1.Make Atmosphere-NX Loader Patch
2.Make ES Patch and FS Patches
3.Make ES Patch
4.Make Alt Beta ES Patch
5.Make ES NFIM Patch
6.Make FS Patches
7.Toggle Debug info
8.NCA info
9.Exit/Quit

What would you like to do?

I recommend to select the option «7» in order to enable information on screen.

Then you can select the option «1» to generate sigpatches for Atmosphère, when asked for the «fusee-secondary.bin or package3» files, write down the path where Atmosphère was extracted, on this example: «c:\ATM132\package3».

You can use the option «2» to generate sigpatches for the firmware, when asked for the firmware path, use the one where you extract firmware files, on this example: «C:\FW1412».

Tip from @masagrator, also you can drag from a File Explorer window the folder of firmware and the package3 file to the command line window, then the full path is written for you on the command line, avoiding typos.
record_1.png

For Windows 10 and Windows 11 this ONLY works if you start the CMD as normal user, if your CMD.EXE was started as Administrator, do not work because explorer ALWAYS run as standard user and a standard user window can not send data to a Administrator one.

Tip from @subcon959 : if you put package3 in the scripts folder and then put the firmware files in a folder called firmware and put that in the scripts folder too, then you can just press enter when the menu asks for them instead of dragging or typing anything.
W09lAnk.jpg
TESTED AND WORKS LIKE A CHARM!


The next examples shows the result of the executions:
1659197808475.png



1659197914104.png


If everything goes well you end with the folder «c:\AutoIPS\scripts\output» inside that folder should be a folder named «Atmosphere» that folder should be copied to the root of your SD card; and a file called «patches.ini» which goes to the «SD:/BOOTLOADER» path of your SD Card.

Its possible to see a bunch of Warnings «[WARN]» about to match key, some like:
1659317316418.png

are WARNINGS and you need no to worry about that, it's just you have more keys on the Keys.dat file than needed so ignore them.

If you get errors, verify the location of the «KEYS.DAT» file and the path you give for the Atmosphère files and firmware folder. DO NOT ADD EMPTY SPACES AT END OF THE PATHS.

-Edit 1:-
Correcting a typo and adding suggestions from other users; the great of this community!
And trying to be sure the credit goes to @mrdude him is the one what make the hard work and investigation.

-Edit 2-
add a video of dragging names and UAC restriction. and the good news from MrDude.

-Edit 3-
Adding new homebrew app.

-Edit 4-
Creating steps for the new App., To do: steps for console homebrew.

-Edit 5-
New download URL and KeyData Generation.
 

Attachments

  • 1661377712209.png
    1661377712209.png
    36.2 KB · Views: 215
  • 1661380064400.png
    1661380064400.png
    27 KB · Views: 210
  • 1661380748979.png
    1661380748979.png
    12.6 KB · Views: 225
  • Sigpatch-IPS-Creator_1.5.7_Yandex.png
    Sigpatch-IPS-Creator_1.5.7_Yandex.png
    3.3 KB · Views: 17
Last edited by impeeza,

Dimensio

Well-Known Member
Newcomer
Joined
Aug 28, 2009
Messages
71
Trophies
1
XP
306
Country
United States
Buddy, the only help I can think is: I just remade the process:
  1. from https://disk.yandex.com/d/LEKGKbfDw-_pjA I downloaded the file:
    View attachment 441921
  2. Then extracted that file to a NEW folder on my PC:
    View attachment 441922
  3. Executed the IPS_Patch_Creator.exe, the first time you are asked for confirm the size of the NCA Sizes
    View attachment 441923
  4. Click «Save», Then you are asked to «Update Config», click «YES»
    View attachment 441924
  5. Finally you are asked to create a template file, click «YES»
    View attachment 441925
  6. Go to «KeyData» Tab
    View attachment 441927
  7. Copy and paste the contents of your PROD.KEYS file on it, then press «Write Keys» button.
    View attachment 441928
  8. I Got a copy of the Firmware on Zip way, the Firmware 18.1.0 have the checksums:
    • SHA256: C81D47786A44C5A81B48EEE2E6E0BAEA4ECBE109712E15E02258C46F78A7BF5B *FIRMWARE.18.0.1.ZIP
    • MD5: f8b3c0b18f4c432d637715517f9a0889 *Firmware.18.0.1.zip
  9. Then I extracted the contents to a folder on my PC
    View attachment 441933
  10. Lastly using the button «Make Patch» create the set of patches you like
    View attachment 441929
  11. You can click the button and browse to the FW folder location or drag and drop the folder IN TO THE BUTTON.
  12. All steps worked for me just fine.
I just did the same, exactly as you described. Empty folder. Extracted the IPS Signature patcher from the link that you provided. Copied my prod.keys file. Loader, ES and NFIM give no issues. FS gives this

1718208258348.png


(I notice that you gave the hashes for the 18.0.1 firmware but I am using 18.1.0 -- though, as I said, I get the same problem with 18.0.0).
 

impeeza

¡Kabito!
OP
Member
Joined
Apr 5, 2011
Messages
6,795
Trophies
3
Age
46
Location
At my chair.
XP
20,434
Country
Colombia
maybe you are missing some keys, I have the next set of keys, please look if you are missing one, and create a new set using LOCKPIC_RCM:

Code:
aes_kek_generation_source =  0123456789ABCDEF0123456789ABCDEF
aes_key_generation_source =  0123456789ABCDEF0123456789ABCDEF
bis_kek_source =  0123456789ABCDEF0123456789ABCDEF
bis_key_00 =  0123456789ABCDEF0123456789ABCDEF
bis_key_01 =  0123456789ABCDEF0123456789ABCDEF
bis_key_02 =  0123456789ABCDEF0123456789ABCDEF
bis_key_03 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_00 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_01 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_02 =  0123456789ABCDEF0123456789ABCDEF
device_key =  0123456789ABCDEF0123456789ABCDEF
device_key_4x =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kek =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kek_source =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kekek_source =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_keypair =  0123456789ABCDEF0123456789ABCDEF
header_kek_source =  0123456789ABCDEF0123456789ABCDEF
header_key =  0123456789ABCDEF0123456789ABCDEF
header_key_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_source =  0123456789ABCDEF0123456789ABCDEF
keyblob_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_source =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_05 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_06 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_07 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_08 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_09 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0a =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0b =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0c =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0d =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0e =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0f =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_10 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_11 =  0123456789ABCDEF0123456789ABCDEF
master_kek_00 =  0123456789ABCDEF0123456789ABCDEF
master_kek_01 =  0123456789ABCDEF0123456789ABCDEF
master_kek_02 =  0123456789ABCDEF0123456789ABCDEF
master_kek_03 =  0123456789ABCDEF0123456789ABCDEF
master_kek_04 =  0123456789ABCDEF0123456789ABCDEF
master_kek_05 =  0123456789ABCDEF0123456789ABCDEF
master_kek_08 =  0123456789ABCDEF0123456789ABCDEF
master_kek_09 =  0123456789ABCDEF0123456789ABCDEF
master_kek_0a =  0123456789ABCDEF0123456789ABCDEF
master_kek_0b =  0123456789ABCDEF0123456789ABCDEF
master_kek_0c =  0123456789ABCDEF0123456789ABCDEF
master_kek_0d =  0123456789ABCDEF0123456789ABCDEF
master_kek_0e =  0123456789ABCDEF0123456789ABCDEF
master_kek_0f =  0123456789ABCDEF0123456789ABCDEF
master_kek_10 =  0123456789ABCDEF0123456789ABCDEF
master_kek_11 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_06 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_07 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_08 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_09 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0a =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0b =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0c =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0d =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0e =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0f =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_10 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_11 =  0123456789ABCDEF0123456789ABCDEF
master_key_00 =  0123456789ABCDEF0123456789ABCDEF
master_key_01 =  0123456789ABCDEF0123456789ABCDEF
master_key_02 =  0123456789ABCDEF0123456789ABCDEF
master_key_03 =  0123456789ABCDEF0123456789ABCDEF
master_key_04 =  0123456789ABCDEF0123456789ABCDEF
master_key_05 =  0123456789ABCDEF0123456789ABCDEF
master_key_06 =  0123456789ABCDEF0123456789ABCDEF
master_key_07 =  0123456789ABCDEF0123456789ABCDEF
master_key_08 =  0123456789ABCDEF0123456789ABCDEF
master_key_09 =  0123456789ABCDEF0123456789ABCDEF
master_key_0a =  0123456789ABCDEF0123456789ABCDEF
master_key_0b =  0123456789ABCDEF0123456789ABCDEF
master_key_0c =  0123456789ABCDEF0123456789ABCDEF
master_key_0d =  0123456789ABCDEF0123456789ABCDEF
master_key_0e =  0123456789ABCDEF0123456789ABCDEF
master_key_0f =  0123456789ABCDEF0123456789ABCDEF
master_key_10 =  0123456789ABCDEF0123456789ABCDEF
master_key_11 =  0123456789ABCDEF0123456789ABCDEF
master_key_source =  0123456789ABCDEF0123456789ABCDEF
package1_key_00 =  0123456789ABCDEF0123456789ABCDEF
package1_key_01 =  0123456789ABCDEF0123456789ABCDEF
package1_key_02 =  0123456789ABCDEF0123456789ABCDEF
package1_key_03 =  0123456789ABCDEF0123456789ABCDEF
package1_key_04 =  0123456789ABCDEF0123456789ABCDEF
package1_key_05 =  0123456789ABCDEF0123456789ABCDEF
package2_key_00 =  0123456789ABCDEF0123456789ABCDEF
package2_key_01 =  0123456789ABCDEF0123456789ABCDEF
package2_key_02 =  0123456789ABCDEF0123456789ABCDEF
package2_key_03 =  0123456789ABCDEF0123456789ABCDEF
package2_key_04 =  0123456789ABCDEF0123456789ABCDEF
package2_key_05 =  0123456789ABCDEF0123456789ABCDEF
package2_key_06 =  0123456789ABCDEF0123456789ABCDEF
package2_key_07 =  0123456789ABCDEF0123456789ABCDEF
package2_key_08 =  0123456789ABCDEF0123456789ABCDEF
package2_key_09 =  0123456789ABCDEF0123456789ABCDEF
package2_key_0a =  0123456789ABCDEF0123456789ABCDEF
package2_key_0b =  0123456789ABCDEF0123456789ABCDEF
package2_key_0c =  0123456789ABCDEF0123456789ABCDEF
package2_key_0d =  0123456789ABCDEF0123456789ABCDEF
package2_key_0e =  0123456789ABCDEF0123456789ABCDEF
package2_key_0f =  0123456789ABCDEF0123456789ABCDEF
package2_key_10 =  0123456789ABCDEF0123456789ABCDEF
package2_key_11 =  0123456789ABCDEF0123456789ABCDEF
package2_key_source =  0123456789ABCDEF0123456789ABCDEF
per_console_key_source =  0123456789ABCDEF0123456789ABCDEF
retail_specific_aes_key_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_kek_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_key =  0123456789ABCDEF0123456789ABCDEF
save_mac_key_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_sd_card_kek_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_sd_card_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_custom_storage_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_kek_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_nca_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_save_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_seed =  0123456789ABCDEF0123456789ABCDEF
secure_boot_key =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kek =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kek_source =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kekek_source =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_key =  0123456789ABCDEF0123456789ABCDEF
titlekek_00 =  0123456789ABCDEF0123456789ABCDEF
titlekek_01 =  0123456789ABCDEF0123456789ABCDEF
titlekek_02 =  0123456789ABCDEF0123456789ABCDEF
titlekek_03 =  0123456789ABCDEF0123456789ABCDEF
titlekek_04 =  0123456789ABCDEF0123456789ABCDEF
titlekek_05 =  0123456789ABCDEF0123456789ABCDEF
titlekek_06 =  0123456789ABCDEF0123456789ABCDEF
titlekek_07 =  0123456789ABCDEF0123456789ABCDEF
titlekek_08 =  0123456789ABCDEF0123456789ABCDEF
titlekek_09 =  0123456789ABCDEF0123456789ABCDEF
titlekek_0a =  0123456789ABCDEF0123456789ABCDEF
titlekek_0b =  0123456789ABCDEF0123456789ABCDEF
titlekek_0c =  0123456789ABCDEF0123456789ABCDEF
titlekek_0d =  0123456789ABCDEF0123456789ABCDEF
titlekek_0e =  0123456789ABCDEF0123456789ABCDEF
titlekek_0f =  0123456789ABCDEF0123456789ABCDEF
titlekek_10 =  0123456789ABCDEF0123456789ABCDEF
titlekek_11 =  0123456789ABCDEF0123456789ABCDEF
titlekek_source =  0123456789ABCDEF0123456789ABCDEF
tsec_key =  0123456789ABCDEF0123456789ABCDEF
tsec_root_key_02 = 4b4fbcf58e23cf4902d478b76c8048ec
 

Dimensio

Well-Known Member
Newcomer
Joined
Aug 28, 2009
Messages
71
Trophies
1
XP
306
Country
United States
maybe you are missing some keys, I have the next set of keys, please look if you are missing one, and create a new set using LOCKPIC_RCM:

Code:
aes_kek_generation_source =  0123456789ABCDEF0123456789ABCDEF
aes_key_generation_source =  0123456789ABCDEF0123456789ABCDEF
bis_kek_source =  0123456789ABCDEF0123456789ABCDEF
bis_key_00 =  0123456789ABCDEF0123456789ABCDEF
bis_key_01 =  0123456789ABCDEF0123456789ABCDEF
bis_key_02 =  0123456789ABCDEF0123456789ABCDEF
bis_key_03 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_00 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_01 =  0123456789ABCDEF0123456789ABCDEF
bis_key_source_02 =  0123456789ABCDEF0123456789ABCDEF
device_key =  0123456789ABCDEF0123456789ABCDEF
device_key_4x =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kek =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kek_source =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_kekek_source =  0123456789ABCDEF0123456789ABCDEF
eticket_rsa_keypair =  0123456789ABCDEF0123456789ABCDEF
header_kek_source =  0123456789ABCDEF0123456789ABCDEF
header_key =  0123456789ABCDEF0123456789ABCDEF
header_key_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_application_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_ocean_source =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_00 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_01 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_02 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_03 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_04 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_05 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_06 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_07 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_08 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_09 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0a =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0b =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0c =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0d =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0e =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_0f =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_10 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_11 =  0123456789ABCDEF0123456789ABCDEF
key_area_key_system_source =  0123456789ABCDEF0123456789ABCDEF
keyblob_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_key_source_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_00 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_01 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_02 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_03 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_04 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_05 =  0123456789ABCDEF0123456789ABCDEF
keyblob_mac_key_source =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_05 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_06 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_07 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_08 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_09 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0a =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0b =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0c =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0d =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0e =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_0f =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_10 =  0123456789ABCDEF0123456789ABCDEF
mariko_master_kek_source_11 =  0123456789ABCDEF0123456789ABCDEF
master_kek_00 =  0123456789ABCDEF0123456789ABCDEF
master_kek_01 =  0123456789ABCDEF0123456789ABCDEF
master_kek_02 =  0123456789ABCDEF0123456789ABCDEF
master_kek_03 =  0123456789ABCDEF0123456789ABCDEF
master_kek_04 =  0123456789ABCDEF0123456789ABCDEF
master_kek_05 =  0123456789ABCDEF0123456789ABCDEF
master_kek_08 =  0123456789ABCDEF0123456789ABCDEF
master_kek_09 =  0123456789ABCDEF0123456789ABCDEF
master_kek_0a =  0123456789ABCDEF0123456789ABCDEF
master_kek_0b =  0123456789ABCDEF0123456789ABCDEF
master_kek_0c =  0123456789ABCDEF0123456789ABCDEF
master_kek_0d =  0123456789ABCDEF0123456789ABCDEF
master_kek_0e =  0123456789ABCDEF0123456789ABCDEF
master_kek_0f =  0123456789ABCDEF0123456789ABCDEF
master_kek_10 =  0123456789ABCDEF0123456789ABCDEF
master_kek_11 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_06 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_07 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_08 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_09 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0a =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0b =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0c =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0d =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0e =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_0f =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_10 =  0123456789ABCDEF0123456789ABCDEF
master_kek_source_11 =  0123456789ABCDEF0123456789ABCDEF
master_key_00 =  0123456789ABCDEF0123456789ABCDEF
master_key_01 =  0123456789ABCDEF0123456789ABCDEF
master_key_02 =  0123456789ABCDEF0123456789ABCDEF
master_key_03 =  0123456789ABCDEF0123456789ABCDEF
master_key_04 =  0123456789ABCDEF0123456789ABCDEF
master_key_05 =  0123456789ABCDEF0123456789ABCDEF
master_key_06 =  0123456789ABCDEF0123456789ABCDEF
master_key_07 =  0123456789ABCDEF0123456789ABCDEF
master_key_08 =  0123456789ABCDEF0123456789ABCDEF
master_key_09 =  0123456789ABCDEF0123456789ABCDEF
master_key_0a =  0123456789ABCDEF0123456789ABCDEF
master_key_0b =  0123456789ABCDEF0123456789ABCDEF
master_key_0c =  0123456789ABCDEF0123456789ABCDEF
master_key_0d =  0123456789ABCDEF0123456789ABCDEF
master_key_0e =  0123456789ABCDEF0123456789ABCDEF
master_key_0f =  0123456789ABCDEF0123456789ABCDEF
master_key_10 =  0123456789ABCDEF0123456789ABCDEF
master_key_11 =  0123456789ABCDEF0123456789ABCDEF
master_key_source =  0123456789ABCDEF0123456789ABCDEF
package1_key_00 =  0123456789ABCDEF0123456789ABCDEF
package1_key_01 =  0123456789ABCDEF0123456789ABCDEF
package1_key_02 =  0123456789ABCDEF0123456789ABCDEF
package1_key_03 =  0123456789ABCDEF0123456789ABCDEF
package1_key_04 =  0123456789ABCDEF0123456789ABCDEF
package1_key_05 =  0123456789ABCDEF0123456789ABCDEF
package2_key_00 =  0123456789ABCDEF0123456789ABCDEF
package2_key_01 =  0123456789ABCDEF0123456789ABCDEF
package2_key_02 =  0123456789ABCDEF0123456789ABCDEF
package2_key_03 =  0123456789ABCDEF0123456789ABCDEF
package2_key_04 =  0123456789ABCDEF0123456789ABCDEF
package2_key_05 =  0123456789ABCDEF0123456789ABCDEF
package2_key_06 =  0123456789ABCDEF0123456789ABCDEF
package2_key_07 =  0123456789ABCDEF0123456789ABCDEF
package2_key_08 =  0123456789ABCDEF0123456789ABCDEF
package2_key_09 =  0123456789ABCDEF0123456789ABCDEF
package2_key_0a =  0123456789ABCDEF0123456789ABCDEF
package2_key_0b =  0123456789ABCDEF0123456789ABCDEF
package2_key_0c =  0123456789ABCDEF0123456789ABCDEF
package2_key_0d =  0123456789ABCDEF0123456789ABCDEF
package2_key_0e =  0123456789ABCDEF0123456789ABCDEF
package2_key_0f =  0123456789ABCDEF0123456789ABCDEF
package2_key_10 =  0123456789ABCDEF0123456789ABCDEF
package2_key_11 =  0123456789ABCDEF0123456789ABCDEF
package2_key_source =  0123456789ABCDEF0123456789ABCDEF
per_console_key_source =  0123456789ABCDEF0123456789ABCDEF
retail_specific_aes_key_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_kek_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_key =  0123456789ABCDEF0123456789ABCDEF
save_mac_key_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_sd_card_kek_source =  0123456789ABCDEF0123456789ABCDEF
save_mac_sd_card_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_custom_storage_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_kek_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_nca_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_card_save_key_source =  0123456789ABCDEF0123456789ABCDEF
sd_seed =  0123456789ABCDEF0123456789ABCDEF
secure_boot_key =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kek =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kek_source =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_kekek_source =  0123456789ABCDEF0123456789ABCDEF
ssl_rsa_key =  0123456789ABCDEF0123456789ABCDEF
titlekek_00 =  0123456789ABCDEF0123456789ABCDEF
titlekek_01 =  0123456789ABCDEF0123456789ABCDEF
titlekek_02 =  0123456789ABCDEF0123456789ABCDEF
titlekek_03 =  0123456789ABCDEF0123456789ABCDEF
titlekek_04 =  0123456789ABCDEF0123456789ABCDEF
titlekek_05 =  0123456789ABCDEF0123456789ABCDEF
titlekek_06 =  0123456789ABCDEF0123456789ABCDEF
titlekek_07 =  0123456789ABCDEF0123456789ABCDEF
titlekek_08 =  0123456789ABCDEF0123456789ABCDEF
titlekek_09 =  0123456789ABCDEF0123456789ABCDEF
titlekek_0a =  0123456789ABCDEF0123456789ABCDEF
titlekek_0b =  0123456789ABCDEF0123456789ABCDEF
titlekek_0c =  0123456789ABCDEF0123456789ABCDEF
titlekek_0d =  0123456789ABCDEF0123456789ABCDEF
titlekek_0e =  0123456789ABCDEF0123456789ABCDEF
titlekek_0f =  0123456789ABCDEF0123456789ABCDEF
titlekek_10 =  0123456789ABCDEF0123456789ABCDEF
titlekek_11 =  0123456789ABCDEF0123456789ABCDEF
titlekek_source =  0123456789ABCDEF0123456789ABCDEF
tsec_key =  0123456789ABCDEF0123456789ABCDEF
tsec_root_key_02 = 4b4fbcf58e23cf4902d478b76c8048ec
I see nothing in that list that is not in my prod.keys.
 

Dimensio

Well-Known Member
Newcomer
Joined
Aug 28, 2009
Messages
71
Trophies
1
XP
306
Country
United States
For me on my console both are the same.
So I re-did the process using emunand dumped keys. No change.

Then, on a whim, I tried a different computer. Just a direct copy of the entire working directory from the system I was using to a different one. FS patches built without issue.

I have no idea what it is but it is something with the computer that I was using.
 
  • Wow
Reactions: impeeza

impeeza

¡Kabito!
OP
Member
Joined
Apr 5, 2011
Messages
6,795
Trophies
3
Age
46
Location
At my chair.
XP
20,434
Country
Colombia
So I re-did the process using emunand dumped keys. No change.

Then, on a whim, I tried a different computer. Just a direct copy of the entire working directory from the system I was using to a different one. FS patches built without issue.

I have no idea what it is but it is something with the computer that I was using.
sorry, I can not think about the reason.
Post automatically merged:

maybe a incompatible Hactool.exe on your path.
 

werneck14

Well-Known Member
Member
Joined
Jan 19, 2017
Messages
123
Trophies
0
Age
25
XP
318
Country
Brazil
Just to confirm, is there any breaking changes on firmware 18.1.0?
Should I wait for Lockpick update to support 18.1.0 or something like that?

Recently I've updated my emuNAND to firmware 18.1.0, I've dumped my keys using Lockpick v1.9.12 and I was able to generate the new Loader for the firmware 18.1.0.

But when i try to generate ES or ES2 I get the error

Code:
Unable to decrypt, did you update your keys?

Try adjusting the ES size limits in the config settings if firmware is greater than 15.0.0.

I've seen people saying it could be the lack o updated keys, but i've dumped it multiple times either from sysNAND and emuNAND. I've doubled check and I also have the _0e keys. I also redownloaded the firmware 18.1.0 from darthsternie.net and extracted it again.

Windows Defender sometimes would put IPS_Patch_Creator.exe on Quarantine but I restored it, maybe windows could have messed something else up?

1718706257454.png
1718706283888.png
1718706151552.png
 

impeeza

¡Kabito!
OP
Member
Joined
Apr 5, 2011
Messages
6,795
Trophies
3
Age
46
Location
At my chair.
XP
20,434
Country
Colombia
Just to confirm, is there any breaking changes on firmware 18.1.0?
Should I wait for Lockpick update to support 18.1.0 or something like that?

Recently I've updated my emuNAND to firmware 18.1.0, I've dumped my keys using Lockpick v1.9.12 and I was able to generate the new Loader for the firmware 18.1.0.

But when i try to generate ES or ES2 I get the error

Code:
Unable to decrypt, did you update your keys?

Try adjusting the ES size limits in the config settings if firmware is greater than 15.0.0.

I've seen people saying it could be the lack o updated keys, but i've dumped it multiple times either from sysNAND and emuNAND. I've doubled check and I also have the _0e keys. I also redownloaded the firmware 18.1.0 from darthsternie.net and extracted it again.

Windows Defender sometimes would put IPS_Patch_Creator.exe on Quarantine but I restored it, maybe windows could have messed something else up?

View attachment 442939View attachment 442940View attachment 442938
Windows defender block the file because is downloaded only few times and because no body is going to pay 15 K+ to MS for «certification». is a extortion measure.

FW 18.0.0, 18.0.1 and 18.1.0 HAVE THE SAME KEYS and Lockpick_RCM 1.9.12 will work fine:
1718726836845.png


you need to download again IPS Patch Creator from:

https://disk.yandex.com/d/LEKGKbfDw-_pjA

delete ALL OLD FILES and extract the new ones on a clean folder, import your keys and will work fine.
 
  • Like
Reactions: werneck14

werneck14

Well-Known Member
Member
Joined
Jan 19, 2017
Messages
123
Trophies
0
Age
25
XP
318
Country
Brazil
Windows defender block the file because is downloaded only few times and because no body is going to pay 15 K+ to MS for «certification». is a extortion measure.

FW 18.0.0, 18.0.1 and 18.1.0 HAVE THE SAME KEYS and Lockpick_RCM 1.9.12 will work fine:
View attachment 442993

you need to download again IPS Patch Creator from:

https://disk.yandex.com/d/LEKGKbfDw-_pjA

delete ALL OLD FILES and extract the new ones on a clean folder, import your keys and will work fine.
Sorry for the trouble, I only mentioned Windows Defender cause I was wondering if it could be removing some other important files.

I've downloaded IPS Patch Creator v.1.57 and it worked flawlessly.

The problem occurred because I was using IPS version 1.56.6.

Thank you a lot!! Again, sorry for the dumb question.
 
  • Love
Reactions: impeeza

FRbaron

New Member
Newbie
Joined
Jun 8, 2024
Messages
3
Trophies
0
Age
29
XP
16
Country
Russia
Hi, tell me plz how Loader patches work.As I understand it, package3 is decompressed into several kip files, loader.kip is found by the hash sum, then we find the offset and replace byte 01 with 00 (cmp w0,w1 to cmp w0,w0). But I still don't understand what it affects. And why hekate patches offset start after 100 address. And we took hashsum from compressed loader but patching uncompressed?
 

impeeza

¡Kabito!
OP
Member
Joined
Apr 5, 2011
Messages
6,795
Trophies
3
Age
46
Location
At my chair.
XP
20,434
Country
Colombia
Hi, tell me plz how Loader patches work.As I understand it, package3 is decompressed into several kip files, loader.kip is found by the hash sum, then we find the offset and replace byte 01 with 00 (cmp w0,w1 to cmp w0,w0). But I still don't understand what it affects. And why hekate patches offset start after 100 address. And we took hashsum from compressed loader but patching uncompressed?
My knowledge is no so deep, sorry.
 

miniminx

New Member
Newbie
Joined
Jun 27, 2024
Messages
4
Trophies
0
Age
25
XP
16
Country
United States
Hi, tell me plz how Loader patches work.As I understand it, package3 is decompressed into several kip files, loader.kip is found by the hash sum, then we find the offset and replace byte 01 with 00 (cmp w0,w1 to cmp w0,w0). But I still don't understand what it affects. And why hekate patches offset start after 100 address. And we took hashsum from compressed loader but patching uncompressed?
I think this:
Patches an acid signature check and makes it think it passed. (this is in stratosphere loader - Atmosphere\stratosphere\loader\source\ldr_process_creation.cpp or boolean in Atmosphere\stratosphere\loader\source\ldr_development_manager.cpp).
Hekate payloader needs some space in memory to run so gets injected at 0x0, so shifts everything in firmware forward 0x100, then when it needs to patch firmware bytes it needs to now patch at the new address which is now address + 0x100.
 
Last edited by miniminx,
  • Like
Reactions: FRbaron

bth

New Member
Newbie
Joined
Jan 10, 2024
Messages
3
Trophies
0
Age
28
XP
23
Country
Norway
Hi, tell me plz how Loader patches work.As I understand it, package3 is decompressed into several kip files, loader.kip is found by the hash sum, then we find the offset and replace byte 01 with 00 (cmp w0,w1 to cmp w0,w0). But I still don't understand what it affects. And why hekate patches offset start after 100 address. And we took hashsum from compressed loader but patching uncompressed?


you can find the offset to be patched, which is the following bit after searching for "00 94 01 C0 BE 12 1F 00" with a hex editor, or ghidra, of decompressed loader.kip, or loader.elf (atmosphere debug compilation output for symbols)

What is changed is that the ARM instruction (CMP), a comparator, 0 is returned instead for when the HOS version call that compares your consoles version to firmware version 10, and everything in the code block here:
( Atmosphere/stratosphere/loader/source/ldr_meta.cpp#L114-L139 ) is exited out of because R_SUCCEED is ran, and skipped.

I've provided a screenshot from the .ELF debug output from atmosphere, of the relevant code disassembled with proper symbols for readability.

I'm also surprised of how fast incorrect information spreads on gbatemp as a whole in all of the threads relating to this topic, be it sys-patch, or this.

loader.jpg

Post automatically merged:

You can also accomplish the same with this patch when compiling atmosphere:
Atmosphere/stratosphere/loader/source/ldr_meta.cpp#L114-L119

by just removing "if (hos::GetVersion() < hos::Version_10_0_0) "

ldr_meta.jpg
 
Last edited by bth,
  • Love
Reactions: FRbaron and impeeza

dogtygr

Active Member
Newcomer
Joined
May 30, 2023
Messages
44
Trophies
0
XP
121
Country
United States
Hi, tell me plz how Loader patches work.As I understand it, package3 is decompressed into several kip files, loader.kip is found by the hash sum, then we find the offset and replace byte 01 with 00 (cmp w0,w1 to cmp w0,w0). But I still don't understand what it affects. And why hekate patches offset start after 100 address. And we took hashsum from compressed loader but patching uncompressed?

I have explained here https://gbatemp.net/threads/sys-patch-sysmod-that-patches-on-boot.633517/post-10436314
we indeed start at offset 0x100 because the header is above it. We use the hash of the program build id
Post automatically merged:

you can find the offset to be patched, which is the following bit after searching for "00 94 01 C0 BE 12 1F 00" with a hex editor, or ghidra, of decompressed loader.kip, or loader.elf (atmosphere debug compilation output for symbols)

What is changed is that the ARM instruction (CMP), a comparator, 0 is returned instead for when the HOS version call that compares your consoles version to firmware version 10, and everything in the code block here:
( Atmosphere/stratosphere/loader/source/ldr_meta.cpp#L114-L139 ) is exited out of because R_SUCCEED is ran, and skipped.

I've provided a screenshot from the .ELF debug output from atmosphere, of the relevant code disassembled with proper symbols for readability.

I'm also surprised of how fast incorrect information spreads on gbatemp as a whole in all of the threads relating to this topic, be it sys-patch, or this.

View attachment 444940
Post automatically merged:

You can also accomplish the same with this patch when compiling atmosphere:
Atmosphere/stratosphere/loader/source/ldr_meta.cpp#L114-L119

by just removing "if (hos::GetVersion() < hos::Version_10_0_0) "

View attachment 444953
Where did you find misinformation?
 
Last edited by dogtygr,
  • Love
Reactions: FRbaron and impeeza

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BigOnYa @ BigOnYa: Does Sonic do breakfast? Wendys breakfast is pretty good.