Editing Spock

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 5: Line 5:
You can more or less access Spock through Lepton's ram (there is some hidden test mode on Lepton allowing you to do this). Mathieulh will tell more on this later if he ever get the time to clean up those sources.
You can more or less access Spock through Lepton's ram (there is some hidden test mode on Lepton allowing you to do this). Mathieulh will tell more on this later if he ever get the time to clean up those sources.


= Mapping Structure (PSP) =
= Structure =


<pre>
<pre>
0xBDF00000 = Spock Signature
0xBDF00010 = CMD Number
0xBDF00004 = Spock Version
0xBDF00008 = Spock Error
0xBDF0000C = Spock Proc Phase
0xBDF00010 = Spock CMD Number
0xBDF00014 = Spock Result
0xBDF00018 = Unknown?
0xBDF0001C = Spock Status
0xBDF00020 = Spock Status Asynchronous
0xBDF00024 = Spock Status Asynchronous End
0xBDF00028 = Spock Status End
0xBDF0002C = Spock Source Address
0xBDF00030 = Spock Destination Address


 
sceUmdMan_driver_1b1bf9fd = sceUmdExecRead10Cmd
sceUmdMan_driver_1b1bf9fd = sceUmdExecRead10Cmd (0xA)
sceUmdMan_driver_e3716915 = sceUmdExecRead10Cmd (0xA)
sceUmdMan_driver_f819e17c = sceUmdExecReadMKICmd (0x8)
sceUmdMan_driver_6d17fd57 = sceUmdExecReadMKICmd (0x8)
</pre>
</pre>


Line 34: Line 18:
SPOCK Operations:
SPOCK Operations:
0x01: Init1
0x01: Init1
0x02: Authentication
0x02: Init2
0x03: Step1
0x03: Step1
0x04: Step2
0x04: Step2
Line 40: Line 24:
0x06:
0x06:
0x07:
0x07:
0x08: Decrypt UMD master key / Read Master Key Index / Step 4
0x08: Decrypt UMD master key
0x09: Decrypt IDStorage UMD leaves / Step 5
0x09: Decrypt IDStorage UMD leaves
0x0A: Decrypt UMD Disc Sector
0x0A: Decrypt UMD Disc Sector
0x0B: Reset SPOCK
0x0B: Reset SPOCK
0x0C: Decrypt UMD Disc Sector Debug
0x0C:
</pre>
</pre>


Line 50: Line 34:
== Command 1 (Init 1) ==
== Command 1 (Init 1) ==


* Uses generate_key_from_mesh(7). See [[Kirk#Final_PSP_Individual_Keys]].
== Command 2 (Init 2) ==
 
== Command 2 (Authentication) ==
 
* uses spock2 aes cipher key 0
* uses spock2 aes cmac key 1


== Command 3 (Step 1) ==
== Command 3 (Step 1) ==
Line 67: Line 46:
== Command 7 ==
== Command 7 ==


== Command 8 (Decrypt UMD master key / Read Master Key Index / Step 4) ==
== Command 8 (Decrypt UMD master key) ==
 
* uses spock8 aes cipher key 2
 
'''Decrypted MKI example:'''
<br>All values are little endian.
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
00000000  00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00
00000010  00 00 00 00 00 00 00 00 6A 1D 49 3E 9F 74 84 8D
00000020  2E 39 DA 7D 63 A8 C8 80 0F 00 00 00 00 00 00 80
00000030  2E 83 6A D5 FD 3C D1 97 B3 BC 7A C5 2A 31 DD B8
00000040  01 00 00 00 00 00 00 00 3E 66 41 AE 34 CA 36 EC
00000050  99 75 2A F6 94 DC C6 66 00 00 00 00 00 00 00 00
00000060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...........
00003FF0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
== Command 9 (Decrypt IDStorage UMD leaves / Step 5) ==


* Uses generate_key_from_mesh(5). See [[Kirk#Final_PSP_Individual_Keys]].
== Command 9 (Decrypt IDStorage UMD leaves) ==


Spock command 9 key is used to decrypt UMD leaves stored in [[IDStorage]]. Those leaves are then used in Spock command 8 to decrypt the UMD master key (per disc key). Then this key is used in Spock command 10 to decrypt the UMD raw sectors. Each different PSP region seems to have its own set of UMD keys.
Spock command 9 key is used to decrypt UMD leaves stored in [[IDStorage]]. Those leaves are then used in Spock command 8 to decrypt the UMD master key (per disc key). Then this key is used in Spock command 10 to decrypt the UMD raw sectors. Each different PSP region seems to have its own set of UMD keys.
Line 101: Line 62:
== Command 11 (0xB) (Reset Spock) ==
== Command 11 (0xB) (Reset Spock) ==


== Command 12 (0xC) (Decrypt UMD Disc Sector Debug) ==
== Command 12 (0xC) (Read RAW UMD Sectors?) ==


* Seems to exist only on KICHO DENCHO PSP firmware and devkit firmware, inside UMDMAN.prx
* Seems to exist only on KICHO DENCHO PSP firmware and devkit firmware, inside UMDMAN.prx
Line 107: Line 68:
= Where are spock commands used =
= Where are spock commands used =


* Commands 1 and 9 use [[Kirk#Final_PSP_Individual_Keys|per-console keys]].
* Commands 8 and 0xA are used on psp retail firmware, as well as testkit firmware
* Commands 8 and 0xA are used on psp retail firmware, as well as testkit firmware.
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA and 0xB are used on AV test tool firmware
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA and 0xB are used on AV test tool firmware.
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA, 0xB and 0xC are used on Kicho Dencho firmware, which is a special factory firmware.
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA, 0xB and 0xC are used on Kicho Dencho firmware, which is a special factory firmware.
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA, 0xB and 0xC are used on devkit firmware as well.
* Commands 1, 2, 3, 4, 5, 8, 9, 0xA, 0xB and 0xC are used on devkit firmware as well.
* Usage of these commands can always be found in UMDMAN.prx.
* Usage of these commands can always be found in UMDMAN.prx
Please note that all contributions to PSP Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PSP Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)