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 1: Line 1:
Spock is the PSP hardware cryptography engine responsible for the raw sector level decryption of UMD’s. Named after Captain Spock of Star Trek. Mapped to 0xBDF00000.
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 =
= 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.
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) =
<pre>
0xBDF00000 = Spock Signature
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 (0xA)
sceUmdMan_driver_e3716915 = sceUmdExecRead10Cmd (0xA)
sceUmdMan_driver_f819e17c = sceUmdExecReadMKICmd (0x8)
sceUmdMan_driver_6d17fd57 = sceUmdExecReadMKICmd (0x8)
</pre>


= Commands =
= Commands =
Line 44: Line 20:
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 54: Line 30:
== Command 3 (Step 1) ==
== Command 3 (Step 1) ==


== Command 4 (Step 2) ==
== Command 4 ==


== Command 5 (Step 3) ==
== Command 5 ==


== Command 6 ==
== Command 6 ==
Line 62: Line 38:
== Command 7 ==
== Command 7 ==


== Command 8 (Decrypt UMD master key) ==
== Command 8 (decrypt UMD master key) ==


== Command 9 (Decrypt IDStorage UMD leaves) ==
== 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.


<pre>
<source lang="C">
9F46F9FCFAB2AD0569F688D8794B92BA
u8 spock_cmd9_key[16] = { 0x9F, 0x46, 0xF9, 0xFC, 0xFA, 0xB2, 0xAD, 0x05,
</pre>
0x69, 0xF6, 0x88, 0xD8, 0x79, 0x4B, 0x92, 0xBA};
</source>


[https://web.archive.org/web/20141201091221/http://pastie.org/1467912 more info on Spock by mathieulh]
[https://web.archive.org/web/20141201091221/http://pastie.org/1467912 more info on Spock by mathieulh]


== Command 10 (0xA) (Decrypt UMD raw sectors) ==
== Command 10 (Decrypt UMD raw sectors) ==
 
== Command 11 (0xB) (Reset Spock) ==
 
== Command 12 (0xC) (Decrypt UMD Disc Sector Debug) ==
 
* Seems to exist only on KICHO DENCHO PSP firmware and devkit firmware, inside UMDMAN.prx


= Where are spock commands used =
== Command 11 ==


* Commands 8 and 0xA are used on psp retail firmware, as well as testkit firmware
== Command 12 ==
* 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 devkit firmware as well.
* 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)