Add key dumping methods

Vamsi Krishna 2018-10-31 23:02:38 +05:30
parent 221215b3d5
commit 2645093fae

@ -22,17 +22,51 @@ common1=0123456789ABCDEF0123456789ABCDEF
``` ```
The strings `0123456789ABCDEF0123456789ABCDEF` in the example above are all placeholder and should be replaced by correct 32-digit hex values of keys. Not all lines in the example are required at the same time. Please read the explanation below about which key enables which feature The strings `0123456789ABCDEF0123456789ABCDEF` in the example above are all placeholder and should be replaced by correct 32-digit hex values of keys. Not all lines in the example are required at the same time. Please read the explanation below about which key enables which feature
## Loading encrypted games ### Loading encrypted games
Required keys: `generator`, `slot0x25KeyX` and `slot0x2CKeyX`. If loading encrypted New 3DS games, `slot0x18KeyX` and `slot0x1BKeyX` are also required.
Required keys: `generator`, `slot0x25KeyX` and `slot0x2CKeyX`. If loading encrypted New 3DS games,
`slot0x18KeyX` and `slot0x1BKeyX` are also required.
### Sharing Mii via QR code between citra and 3DS
## Sharing Mii via QR code between citra and 3DS
Required keys: single `slot0x2DKeyN`, OR `slot0x2DKeyX`, `slot0x2DKeyY` and `generator` together. Required keys: single `slot0x2DKeyN`, OR `slot0x2DKeyX`, `slot0x2DKeyY` and `generator` together.
### Generating accurate UDS data frame
## Generating accurate UDS data frame
Required keys: single `slot0x31KeyN`, OR `slot0x31KeyX`, `slot0x31KeyY` and `generator` together. Required keys: single `slot0x31KeyN`, OR `slot0x31KeyX`, `slot0x31KeyY` and `generator` together.
### Using client cert dumped from 3DS
## Using client cert dumped from 3DS
Required keys: single `slot0x0DKeyN`, OR `slot0x0DKeyX`, `slot0x0DKeyY` and `generator` together. Required keys: single `slot0x0DKeyN`, OR `slot0x0DKeyX`, `slot0x0DKeyY` and `generator` together.
### Installing encrypted CIA
## Installing encrypted CIA Required keys: `generator`, `slot0x3DKeyX` and `common0`. `common1`~`5`are probably also required for some
Required keys: `generator`, `slot0x3DKeyX` and `common0`. `common1`~`5`are probably also required for some unusual CIA. unusual CIA.
# Instructions to obtain AES Keys
### Method 1
In this method, you will need to dump bootrom, native_firm & secret section(for n3ds) from your console.
**Step 1** - bootrom
The bootrom boot9.bin can be dumped with Godmode9:
```
go to drive M: Memory Virtual
navigate to boot9.bin, press A
Select Copy to O:/gm9out
=> This will give you boot9.bin in gm9out on your SD card
The boot9.bin needs to be placed in sysdata in the user directory.
```
**Step 2** - native_firm & secret section
**For o3DS / o2DS**
* In GodMode9, navigate to `sysnand ctrnand` -> `title` -> and then dump `00040138/00000003` as cia and install it in Citra.
**For n3DS/n2DS**
* In GodMode9, naviagte to `sysnand ctrnand` -> `title` -> and then dump `00040138/20000003` as cia and install it in Citra.
* Dump the secret section with godmode9 and copy the file (sector0x96.bin) to sys_data in the user folder.
**Note:** You will still need to provide the `0x25` KeyX using Method 2.
### Method 2
As an alternative, instead of dumping the required files, you can provide all the [AES keys](https://github.com/citra-emu/citra/wiki/AES-Keys) by adding them to `sysdata/aes_keys.txt`. This file is located in the [User Directory](https://github.com/citra-emu/citra/wiki/User-Directory).