Spock

From PSP Developer wiki
Revision as of 18:13, 13 January 2024 by Zecoxao (talk | contribs)
Jump to navigation Jump to search

Spock is the PSP hardware cryptography engine responsible for the raw sector level decryption of UMD’s. Named after Captain Spock of Star Trek.

Executing commands

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.

Commands

SPOCK Operations:
0x01: Init1
0x02: Init2
0x03: Step1
0x04: Step2
0x05: Step3
0x06:
0x07:
0x08: Decrypt UMD master key
0x09: Decrypt IDStorage UMD leaves
0x0A: Decrypt UMD Disc Sector
0x0B: Reset SPOCK
0x0C:


Command 1 (Init 1)

Command 2 (Init 2)

Command 3 (Step 1)

Command 4 (Step 2)

Command 5 (Step 3)

Command 6

Command 7

Command 8 (Decrypt UMD master key)

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.

0x9F, 0x46, 0xF9, 0xFC, 0xFA, 0xB2, 0xAD, 0x05, 0x69, 0xF6, 0x88, 0xD8, 0x79, 0x4B, 0x92, 0xBA

more info on Spock by mathieulh

Command 10 (Decrypt UMD raw sectors)

Command 11 (Reset Spock)

Command 12 (Read RAW UMD Sectors?)

  • Seems to exist on KICHO DENCHO PSP firmware, inside UMDMAN.prx

Where are spock commands used

  • Commands 8 and 10 (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, 0xB and 0xC are used on Kicho Dencho firmware, which is a special factory firmware.
  • Usage of these commands can always be found in UMDMAN.prx