Editing Talk:Keys

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:
= EAP/EMC Aeolia Script for decrypting and keeping header =
= system modules keysets changes =
 
<pre>
import struct
from binascii import unhexlify as uhx
from binascii import hexlify as hx
from Crypto.Cipher import AES
from Crypto.Hash import SHA, HMAC
 
import os
import sys
 
CIPHERKEYSEMC = ['5F74FE7790127FECF82CC6E6D91FA2D1'] # FULL
CIPHERKEYSEAP = ['581A75D7E9C01F3C1BD7473DBD443B98']
HASHERKEYEMC  = ['73FE06F3906B05ECB506DFB8691F9F54']
HASHERKEYEAP  = ['824D9BB4DBA3209294C93976221249E4']
ZEROS128 =      ['00000000000000000000000000000000']
 
def aes_decrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).decrypt(input)
   
def aes_encrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).encrypt(input)
 
def emc_decrypt_header(hdr):
    return hdr[:0x30] + aes_decrypt_cbc(uhx(CIPHERKEYSEMC[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
   
def emc_encrypt_header(hdr):
    return hdr[:0x30] + aes_encrypt_cbc(uhx(CIPHERKEYSEMC[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
   
def eap_decrypt_header(hdr):
    return hdr[:0x30] + aes_decrypt_cbc(uhx(CIPHERKEYSEAP[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
   
def eap_encrypt_header(hdr):
    return hdr[:0x30] + aes_encrypt_cbc(uhx(CIPHERKEYSEAP[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
 
def main(argc, argv):
        with open(sys.argv[1], 'rb') as f:
            data = f.read(0x80)
            type = data[7:8]
            if type == uhx('48'):
                print 'EMC'
                hdr = emc_decrypt_header(data)
                body_aes_key  = hdr[0x30:0x40]
                body_hmac_key = hdr[0x40:0x50]
                body_hmac = hdr[0x50:0x64]
                zeroes = hdr[0x64:0x6C]
                print(hx(zeroes))
                header_hmac = hdr[0x6C:0x80]
                body_len = struct.unpack('<L', hdr[0xc:0x10])[0]
                print body_len
                ehdr = hdr[:0x6C]
                ebody = f.read(body_len)
                bhmac = HMAC.new(body_hmac_key, ebody, SHA)
                hhmac = HMAC.new(uhx(HASHERKEYEMC[0]), ehdr, SHA)
                body = aes_decrypt_cbc(body_aes_key, uhx(ZEROS128[0]), ebody)
                print bhmac.hexdigest()
                print hhmac.hexdigest()
                print hx(body_hmac)
                print hx(header_hmac)
                with open(sys.argv[1] + '.bin', 'wb') as g:
                    g.write(hdr+body)
            if type == uhx('68'):
                print 'EAP'
                hdr = eap_decrypt_header(data)
                body_aes_key  = hdr[0x30:0x40]
                body_hmac_key = hdr[0x40:0x50]
                body_hmac = hdr[0x50:0x64]
                zeroes = hdr[0x64:0x6C]
                print(hx(zeroes))
                header_hmac = hdr[0x6C:0x80]
                body_len = struct.unpack('<L', hdr[0xc:0x10])[0]
                print body_len
                ehdr = hdr[:0x6C]
                ebody = f.read(body_len)
                bhmac = HMAC.new(body_hmac_key, ebody, SHA)
                hhmac = HMAC.new(uhx(HASHERKEYEAP[0]), ehdr, SHA)
                body = aes_decrypt_cbc(body_aes_key, uhx(ZEROS128[0]), ebody)
                print bhmac.hexdigest()
                print hhmac.hexdigest()
                print hx(body_hmac)
                print hx(header_hmac)
                with open(sys.argv[1] + '.bin', 'wb') as g:
                    g.write(hdr+body)
           
           
 
if __name__ == '__main__':
    main(len(sys.argv), sys.argv)
</pre>
 
= EAP/EMC Aeolia Script for encrypting (with header necessary) =
 
<pre>
import struct
from binascii import unhexlify as uhx
from binascii import hexlify as hx
from Crypto.Cipher import AES
from Crypto.Hash import SHA, HMAC
 
import os
import sys
 
CIPHERKEYSEMC = ['5F74FE7790127FECF82CC6E6D91FA2D1'] # FULL
CIPHERKEYSEAP = ['581A75D7E9C01F3C1BD7473DBD443B98']
HASHERKEYEMC  = ['73FE06F3906B05ECB506DFB8691F9F54']
HASHERKEYEAP  = ['824D9BB4DBA3209294C93976221249E4']
ZEROS128 =      ['00000000000000000000000000000000']
 
def aes_decrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).decrypt(input)
   
def aes_encrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).encrypt(input)
 
def emc_decrypt_header(hdr):
    return hdr[:0x30] + aes_decrypt_cbc(uhx(CIPHERKEYSEMC[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
   
def emc_encrypt_header(hdr):
    return hdr[:0x30] + aes_encrypt_cbc(uhx(CIPHERKEYSEMC[0]), uhx(ZEROS128[0]), hdr[0x30:])
   
def eap_decrypt_header(hdr):
    return hdr[:0x30] + aes_decrypt_cbc(uhx(CIPHERKEYSEAP[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
   
def eap_encrypt_header(hdr):
    return hdr[:0x30] + aes_encrypt_cbc(uhx(CIPHERKEYSEAP[0]), uhx(ZEROS128[0]), hdr[0x30:0x80])
 
def main(argc, argv):
        with open(sys.argv[1], 'rb') as f:
            data = f.read()
            type = data[7:8]
            if type == uhx('48'):
                print 'EMC'
               
                body_len = struct.unpack('<L', data[0xc:0x10])[0]
                body = data[0x80:0x80+body_len]
                body_aes_key  = data[0x30:0x40]
                ebody = aes_encrypt_cbc(body_aes_key, uhx(ZEROS128[0]), body)
                body_hmac_key = data[0x40:0x50]
                bhmac = HMAC.new(body_hmac_key, ebody, SHA)
                hdr = (data[0:0x50] + uhx(bhmac.hexdigest()) + data[0x64:0x6C])
                hhmac = HMAC.new(uhx(HASHERKEYEMC[0]), hdr, SHA)
                hdr = (hdr + uhx(hhmac.hexdigest()))
                hdr = emc_encrypt_header(hdr)
                print bhmac.hexdigest()
                print hhmac.hexdigest()
                with open(sys.argv[1] + '.bin', 'wb') as g:
                    g.write(hdr+ebody)
            if type == uhx('68'):
                print 'EAP'
                body_len = struct.unpack('<L', data[0xc:0x10])[0]
                body = data[0x80:0x80+body_len]
                body_aes_key  = data[0x30:0x40]
                ebody = aes_encrypt_cbc(body_aes_key, uhx(ZEROS128[0]), body)
                body_hmac_key = data[0x40:0x50]
                bhmac = HMAC.new(body_hmac_key, ebody, SHA)
                hdr = (data[0:0x50] + uhx(bhmac.hexdigest()) + data[0x64:0x6C])
                hhmac = HMAC.new(uhx(HASHERKEYEAP[0]), hdr, SHA)
                hdr = (hdr + uhx(hhmac.hexdigest()))
                hdr = eap_encrypt_header(hdr)
                print bhmac.hexdigest()
                print hhmac.hexdigest()
                with open(sys.argv[1] + '.bin', 'wb') as g:
                    g.write(hdr+ebody)
           
           
 
if __name__ == '__main__':
    main(len(sys.argv), sys.argv)
</pre>
 
= System modules keysets changes =
 
<pre>
<pre>
1.00 to 3.70 are 0
1.00 to 3.70 are 0
Line 181: Line 9:
6.50 to 6.72 are 6
6.50 to 6.72 are 6
7.00 to 7.02 are 7
7.00 to 7.02 are 7
7.50 to 7.55 are 8
7.50 to 7.51 are 8
8.00 to 8.03 are 9
8.00 to 8.XX are 9
8.50 to 8.52 are 0xA
9.00 to 9.04 are 0xB
9.50 to 9.60 are 0xC
10.00 to 10.01 are 0xD
10.50 to 10.70 are 0xE
11.00 to 11.02 are 0xF
11.50 to 11.XX are 0 (counter at 0xA at 1 instead of 0)
</pre>
</pre>


* Final slot (0xF) has been depleted so in theory SIE will not be able to update keys again.
= southbridge firmware keysets changes =
 
= Southbridge firmware keysets changes =


<pre>
<pre>
Line 204: Line 23:
</pre>
</pre>


= Order of keys in ShellCore =
= order of keys in shellcore =


P->Q->DQ->QP
P->Q->DQ->QP
Line 234: Line 53:
* <s>42 42 AA FD 7A 05 B4 5C F3 5E 08 22 D4 55 97 45</s> (ShellCore, QP, 0x80)
* <s>42 42 AA FD 7A 05 B4 5C F3 5E 08 22 D4 55 97 45</s> (ShellCore, QP, 0x80)


= Database rebuild trigger magic =
= Database reconstruction magic =


<pre>
<pre>
Line 242: Line 61:
= Portable Keys Dumps =
= Portable Keys Dumps =


* Static always.
* Static Always


== sealedkey_key_E ==
== sealedkey_key_E ==
Line 263: Line 82:
</pre>
</pre>


== sealedkey_key_sign_E ==
== sealedkey_key_sign_E ==


<pre>
<pre>
Line 291: Line 110:


== crepo_iv ==
== crepo_iv ==
Used for Crash Report.


<pre>
<pre>
Line 299: Line 116:


== crepo_key_1_sign_E ==
== crepo_key_1_sign_E ==
Used for Crash Report.


<pre>
<pre>
Line 307: Line 122:
</pre>
</pre>


== crepo_key_2_sign_E ==
== crepo_key_2_sign_E ==
 
Used for Crash Report.


<pre>
<pre>
Line 316: Line 129:
</pre>
</pre>


== crepo_key_1_sign_I ==
== crepo_key_1_sign_I   ==
 
Used for Crash Report.


<pre>
<pre>
Line 325: Line 136:
</pre>
</pre>


== crepo_key_2_sign_I ==
== crepo_key_2_sign_I   ==
 
Used for Crash Report.


<pre>
<pre>
Line 335: Line 144:


== crepo_key_1_E ==
== crepo_key_1_E ==
Used for Crash Report.
<pre>
<pre>
24 3F 86 77 5F 7C DA 8F 9A D4 8A 72 69 9C BC 1E  
24 3F 86 77 5F 7C DA 8F 9A D4 8A 72 69 9C BC 1E  
Line 349: Line 155:
</pre>
</pre>


== crepo_key_2_E ==
== crepo_key_2_E ==
 
Used for Crash Report.


<pre>
<pre>
Line 364: Line 168:
</pre>
</pre>


== crepo_key_1_I ==
== crepo_key_1_I   ==
 
Used for Crash Report.
 
<pre>
<pre>
8B 5B 04 14 D6 26 36 F6 86 37 DD 3A E2 8B EC FA  
8B 5B 04 14 D6 26 36 F6 86 37 DD 3A E2 8B EC FA  
Line 380: Line 181:


== rootparam_key_IV ==
== rootparam_key_IV ==
<pre>
<pre>
95 69 82 9C D4 B1 5F F8 43 30 54 5A 34 EC 1B C5
95 69 82 9C D4 B1 5F F8 43 30 54 5A 34 EC 1B C5
Line 428: Line 228:


== rootparam_key_0_I ==
== rootparam_key_0_I ==
<pre>
<pre>
F6 9F B6 9A 77 1F C2 D5 12 F7 25 2F A5 86 FB 22  
F6 9F B6 9A 77 1F C2 D5 12 F7 25 2F A5 86 FB 22  
Line 440: Line 239:
</pre>
</pre>


== rootparam_key_1_I ==
== rootparam_key_1_I ==
 
 


<pre>
<pre>
Line 453: Line 254:
</pre>
</pre>


== rootparam_key_2_I ==
== rootparam_key_2_I ==
 
 


<pre>
<pre>
Line 466: Line 269:
</pre>
</pre>


== rootparam_key_3_I ==
== rootparam_key_3_I ==
 


<pre>
<pre>
Line 478: Line 282:
18 83 AB 46 60 2F 27 D2 6B 86 65 0C CA C7 89 C1  
18 83 AB 46 60 2F 27 D2 6B 86 65 0C CA C7 89 C1  
</pre>
</pre>


== rootparam_key_4_I ==
== rootparam_key_4_I ==


<pre>
<pre>
Line 491: Line 297:
D6 7E A4 70 53 25 BE 42 D3 19 4A 8D B0 8A AC EF  
D6 7E A4 70 53 25 BE 42 D3 19 4A 8D B0 8A AC EF  
</pre>
</pre>


== rootparam_key_5_I ==
== rootparam_key_5_I ==
Line 518: Line 325:
E6 99 81 1C A7 25 73 C0 00 EA 1C A9 D6 B6 12 3A  
E6 99 81 1C A7 25 73 C0 00 EA 1C A9 D6 B6 12 3A  
</pre>
</pre>
== rootparam_key_2_sign_E ==
== rootparam_key_2_sign_E ==


Line 525: Line 331:
4C 60 CC 78 F7 F4 D5 45 82 9B 2E 79 62 D2 D1 CD  
4C 60 CC 78 F7 F4 D5 45 82 9B 2E 79 62 D2 D1 CD  
</pre>
</pre>
== rootparam_key_3_sign_E ==
== rootparam_key_3_sign_E ==


Line 532: Line 337:
4C 60 CC 78 F7 F4 D5 45 82 9B 2E 79 62 D2 D1 CD  
4C 60 CC 78 F7 F4 D5 45 82 9B 2E 79 62 D2 D1 CD  
</pre>
</pre>
== rootparam_key_4_sign_E ==
== rootparam_key_4_sign_E ==


Line 539: Line 343:
3D C7 51 95 7B A1 CB 80 A5 EC 47 81 43 A9 61 4E  
3D C7 51 95 7B A1 CB 80 A5 EC 47 81 43 A9 61 4E  
</pre>
</pre>
== rootparam_key_5_sign_E ==
== rootparam_key_5_sign_E ==


Line 626: Line 429:


== sealedkey_key_E (pfsSKKey__SecKey) ==
== sealedkey_key_E (pfsSKKey__SecKey) ==
Used for PFS encryption.


<pre>
<pre>
Line 639: Line 440:


* flag is 0
* flag is 0
* identical to I


== SCE_EAP_HDD__KEY (External) ==
== SCE_EAP_HDD__KEY (External) ==
Used for HDD encryption.


<pre>
<pre>
Line 660: Line 458:


== crepo_key_1_E (CFK1) ==
== crepo_key_1_E (CFK1) ==
Used for Crash Report.


<pre>
<pre>
Line 676: Line 472:


* flag is 0xC
* flag is 0xC
== crepo_key_1_I (CFK1) ==
Used for Crash Report.
<pre>
43 46 4B 31 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
77 B7 5A 04 C9 69 D3 FE BC 11 38 EE 2F B1 31 CC
71 E6 66 F7 D3 78 E4 F4 CD AB 35 D7 DE C4 A3 26
3B 2A 68 2C 43 06 15 CE 04 77 3D 4B A5 BC F8 7E
CF 9B CF 77 B4 8B A7 78 DE BD 09 75 BB 5B B1 27
44 A1 E3 CC EC 71 4F 10 09 48 CC 23 55 41 3C CE
11 34 1A 57 F2 34 69 F9 62 6B 2E 71 AD 17 B2 2C
</pre>


== crepo_key_2_E (CFK1) ==
== crepo_key_2_E (CFK1) ==
Used for Crash Report.


<pre>
<pre>
Line 723: Line 502:


* flag is 0x14
* flag is 0x14
== rootparam_key_0_I (SCEROOTPARAM_KEY) ==
<pre>
53 43 45 52 4F 4F 54 50 41 52 41 4D 5F 4B 45 59
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CA 5C 5D 73 F7 57 0D 77 E9 00 AB 72 C0 5A C3 C4
B4 9C 45 CB CD 90 29 61 58 EC 47 1F 5F 26 72 52
29 ED 9C 0A F8 D3 97 00 29 85 A9 DF D0 F2 47 21
03 EA A7 1E B1 10 C0 03 99 B1 1D EC B2 E5 DF 08
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</pre>


== rootparam_key_4_E  (SCEROOTPARAM_KEY) ==
== rootparam_key_4_E  (SCEROOTPARAM_KEY) ==
Line 753: Line 519:
* flag is 0x14
* flag is 0x14


== rootparam_key_5_E (SCEROOTPARAM_KEY) ==
== rootparam_key_5_E (SCEROOTPARAM_KEY) ==


<pre>
<pre>
Line 770: Line 536:


== SCE_LwUtoken_Key (External) ==
== SCE_LwUtoken_Key (External) ==
Used for "low" user tokens.


<pre>
<pre>
Line 787: Line 551:


== SCE_LwUtoken_Key (External-Extra1) ==
== SCE_LwUtoken_Key (External-Extra1) ==
Used for "low" user tokens.


<pre>
<pre>
Line 805: Line 567:


== SCE_LwUtoken_Key (External-Extra2) ==  
== SCE_LwUtoken_Key (External-Extra2) ==  
Used for "low" user tokens.


<pre>
<pre>
Line 823: Line 583:


== IPMI (E) ==
== IPMI (E) ==
Used for Inter-Process Method Invocation.


<pre>
<pre>
Line 840: Line 598:


== SCE_SBL_BAR_KEY1 (E) ==
== SCE_SBL_BAR_KEY1 (E) ==
Used for Secure Block Backup And Restore feature.
<pre>
<pre>
ffffff80869df8e0  53 43 45 5f 53 42 4c 5f  42 41 52 5f 4b 45 59 31  |SCE_SBL_BAR_KEY1|
ffffff80869df8e0  53 43 45 5f 53 42 4c 5f  42 41 52 5f 4b 45 59 31  |SCE_SBL_BAR_KEY1|
Line 870: Line 625:
* flag is 0x4C
* flag is 0x4C


== Unknown key 0x54 ==
== Other Keys ==
 
<pre>
91 0B 7C A6 6B 4B F9 DA 00 72 F1 67 6C 51 99 70
C1 4D B2 26 6A 59 29 C2 5E 1A 72 5D D8 19 05 BF
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</pre>
 
* flag 0x54
 
== hidAuthThreadMain ==


<pre>
<pre>
Line 900: Line 640:
* hidAuthThreadMain  
* hidAuthThreadMain  
* flag 0x48
* flag 0x48
== livedump ==


<pre>
<pre>
Line 916: Line 654:
* livedump
* livedump
* flag 0x44
* flag 0x44
== pfs_sbl_key ==


<pre>
<pre>
Line 932: Line 668:
* pfs_sbl_key
* pfs_sbl_key
* flag 0x58
* flag 0x58
== SCECloudSD___KEY ==
Used for Cloud Save Data features. Similar to the Cloud Data Key Ring used in PS Vita since System Software version 3.100.081.


<pre>
<pre>
Line 998: Line 730:
* flag 0x1C
* flag 0x1C


= Portable Keys Dumps (ShellCore) =
= Portable Keys Dumps (Shellcore) =


== SCE_CFS_hostname (E) ==
== SCE_CFS_hostname (E) ==


Host by Amazon AWS at Portland, Oregon, 97086 United States of America. Alias of cfss.crs.playstation.net.
<pre>
 
Zeke Jedediah Dunbar is a main character of the Infamous videogame developped by Sony Computer Entertainment America.


<pre>
-------HEX DUMP------
-------HEX DUMP------
ffffff8085f7f8e0  53 43 45 5f 43 46 53 5f  68 6f 73 74 6e 61 6d 65  |SCE_CFS_hostname|
ffffff8085f7f8e0  53 43 45 5f 43 46 53 5f  68 6f 73 74 6e 61 6d 65  |SCE_CFS_hostname|
Line 1,020: Line 749:
* flag 0xD
* flag 0xD


== SCE_RCR_hostname (E) ==  
== SCE_RCR_hostname(E) ==  
 
Host by Amazon AWS at Portland, Oregon, 97086 United States of America. Owned by Minato-ku for Sony Computer Entertainment Inc. Network Platform Service Department at Tokyo (Japan).
 
Zeke Jedediah Dunbar is a main character of the Infamous videogame developped by Sony Computer Entertainment America.


<pre>
<pre>
Line 1,041: Line 766:


== SCE_CDN_hostname (E) ==
== SCE_CDN_hostname (E) ==
Used for Crash Report.


<pre>
<pre>
Line 1,055: Line 778:
ffffff8085f7f950  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
ffffff8085f7f950  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
</pre>
</pre>


* flag 0xD
* flag 0xD


== SCE_SYS_TLM_SECK (E) ==
== SCE_SYS_TLM_SECK(E) (GetOpenPsIdHash) ==
 
Used in GetOpenPsIdHash.


<pre>
<pre>
Line 1,077: Line 799:


== Other Keys ==
== Other Keys ==
<pre>
<pre>
-------HEX DUMP------
-------HEX DUMP------
Line 1,108: Line 829:
56 6B DD 67 C3 B6 B5 04 EF 1A 39 C0 CC AC 4B E2
56 6B DD 67 C3 B6 B5 04 EF 1A 39 C0 CC AC 4B E2
</pre>
</pre>
* same as Internal


* timezone_key_E | flag = 0x40
* timezone_key_E | flag = 0x40
Line 1,172: Line 891:


* system_log_privacy_key_E | flag = 0x40
* system_log_privacy_key_E | flag = 0x40
= Unknown Index Modulus =
<pre>
1
A75F472844342E6633AC8243F0D77110
4A58F5C9CBEF4AA8D12CAE14995B1034
2FE84161CD0C56ED45DAC9D9A60F3599
FD710CD636098CD209719EFFC842A9A7
09BCC228870AA2F4D9D5A3C28F8F6432
5914F79086D7CC906D20E4329F3011FC
59A7E3736230A33068CB456F1E88D02D
49A5387995562A14584EE50052C27BAF
98ABEC1E6F4EF2C7DCD67ED1E97757AD
6EDAA03AF3C66DF4E1CB2D2411985080
16B46FC0CF8ED3BED5528EEB86F2E63A
B90410386E544EB438C23B355D0DACAE
33823F1CAEF64F8BEBCC9703934E4BC7
BA30A9BE6D415EBA31571C8C6F8985BD
80C09BA23F6F6CFDCB83AF9D9EEF9850
FB182EAF721A54F29CC7515CDC838C6B
2
DD7159C87B00C020E6F0A2FE595AE9C5
317A4DE8351FBB1647A2D3D1E0796CB8
AC3BB687B391D68FF1F5AE10CC279CF9
8D7AAD6C213B7E5B0BEC6C67612531E7
D3774E1319FA760C7183B4E28FBF680C
EC4D27619D858A873BD343794AAFA08F
DD3C03026E9DE7A3B4AE5A72CE422A2F
AFC7E5307228EAE342D4BE0DD1538EA7
240D369AE912024F7267F061849C0C4D
E9912518111281E95182E84842DD3114
8153F8C3E9A4A8EC8A89248601F7F3C9
B6A4C337C090031CF482C17CD4C1CA0A
55705CA7382E2CFAFBB2E1F4D5A0F8CB
407FB067222D34A8B2C4BAAA1B391F60
35624406EC47AED23868490C043D8D94
A780DE4DBCCF9787D42877D88A7A149D
3
BAE3BDD7677BB1320AD9F4886FA4236A
3DB5FC25AD014BC00DED4E8860F8E126
3193506D1FD80790FE773A3AD1349A7D
7D82EDD045D8AE73A4DDA79B9AEA1868
25D718DFEB428ED441496E991C488B77
8F11A800B65744DBCE294A9C2AE1001A
6E85C6BD6EB0715870E8D70B2BACA574
74A16B4EC76CD83FCAE75BD5D4E713BE
5E0A448F146EB31E372657C5B5DBD29F
3D52C30F66AF2D20C74EFA8C3163C72A
71A47A1C94D8496851085DD2944107F1
7738DD00E434883B31EA33E62AF70039
F1FC2099806C92250CEC3BB046985758
86F5E9BDEB7B22B707232D5F3998D8DC
A7BFFE4A60B37643FD981204C13FF759
F277373E079DFE227DCD8E0D3951189B
4
A46CEC18F7F2930870A8FB252E0D8229
AD1FE819AF9597E1C89BF871CA818558
6FBFB55EAD810E1798AD4BFDB424F2B3
865F528D4277FD5C5EEA6BB0EF76DE71
29AB1B9EA472850C066DFF10BF039E48
33D126FFBF3375FB6CAD8AB60D87A759
CF63FDED18CB16FFE3D187E2DD8FE134
B2C5CC4882CDE3E05E25E3B438666ABA
BE8CC6BE2A60978C1E9D63EB07EECEEE
AB5A416245E5840B987B9CB726765A15
2AD199DBFCF6DD9CF9D88B0DCAE45AC0
6702AB551E22CB2D5E250D7DA645E731
E92397627DC23FC804B6FECDA16C7623
46DAE61AE2F8DC8523C740A0EF1C6403
C523998875537A90430882A224BE771A
B454443B4D883B2382F82D6DBA483F2D
5
F2C477469489576778502B7A8366718A
B88726B73F4BE27E7B60135A54C29946
F62C14613C88C5C8D8AE465F4EB43D10
45BAC2A6196E1DCEBFB7378FD737DEFF
D4CDC24DBC8BA6C63B546FF8902BC4B6
92137C1B504D7B22395F37F1A532CE03
909C7E562D346257077525440033EBBE
17508E2188C8B6FFB4EC2C0148E3B62A
9197878B05D27DE3327667B249B8F6ED
1E15CC90D088FB1F469A2CD75C2BE807
0A9B95ED0478DD6B0A1C8FB4FB8DA064
30DC7087214F5121FE0038691BA757BE
7E40AA7C49A1DC9EF97AD0F4ADE8E68A
12E1ECBAE2CADA5857BBB7273E568AF0
43E61D0154930844FE1B4526F21AC57A
721F46D3BD97565ECF3C45AE88ACB531
6
D91D7E8AE2C3A5A4C36FB481BF16D198
4E9C9AC678C113C7A4D5712669344F6F
DE09C5865E189C96E1FEA398C77F6FBF
919EE5419954B473B0DE191BAFFB0076
7B29D25ED1C23C4C9356957933FE15E2
5B383C6C5015F4A795AF46342F3F5FF9
9F95C24C6AAF0C76CCA9322B5970C75E
EA0E06D4FE38773DEF3E78AE5DDF74B0
B52163D40CC3B986915130EE87FF6F78
3C38D9481BDCA4F14F05D228965240AE
BB6E027FEB4B7971E642B86FFAF81367
EEB0865F3F6670B1CFE8193CFEA635CB
EF970F46032667B67F1382BD3554D4A3
81CE4215D96B8BC902B95D443360EA06
49726CC8E9BBF6B8F52093FA6017194F
58E0380D47733042E60330E7953543ED
7
AA542A79413B3B5D1E6D38DBDA0B9BC9
933200CA08FCC3D7000845D7F594492C
C00124791060AFB3848CDA5CAFA6AB35
9516C1360F86DA0356104A80CBF818F1
C27BA934FF7CA2F907A8689251099798
4D61EDB6476126BA9EC099014C33FFC2
261087B513F8B29384B3C0E86AF9E096
3BD71C7A96CF445CE10AAA90E0172AC4
B4E20E8AD2F3E758D2B9D64169387EB9
060831D5946386FF0DA87BA1F225F246
6DDFE010C7507EA50A5CDAE6E9C9EA09
D4DDFA02DAE3BCFC772216A5015E7950
89247C45AE048A79C7FE395934D637C1
F7ADC39F40764984B364187C0A878F50
9DC75C5E2904380E200844143B67A916
AC57128464EC990CC742AB9F02920C35
8
D4CAD71FFF3F65A5F18E06304B7FF051
D3B8F7C42D9044A2387F6DF2A1C4B7D0
8A408303519B1CB5567A33FE8F1A8CCD
4A8255ECC7BE6FAE0AEA4C85FA822818
D0D74D9CE401CF6FD01B181CEF838D6B
7338F089B0578802775502EFBE4E20E2
40190A4E3A79B6F15792B527FD6BA3E4
3181B605EB7F636155D66F909EA8A92D
43CA813E7705B8885DBBDA1840022238
F30AC96A76054B225F7FD73ACC0AE56A
99944F95ADF4A4E35FF6DDE635B75365
F0B909D7B1E30C536B494ADD2DB77E69
626E6BD528F2DF9FC72CAE2D791DB6BF
2888FFDA303228E7AC6BFCB040BCE9FE
AFFA802C959B06625D6FCB2E200F8F70
0103488FEA272C6B3AE490F1C44EB9A3
9
CE53064783B52140C7C919E1650416FD
9CAF72B4C1AB5ED886D526310E437FFB
B556DAE8C377807988955E5C4732B034
66FD5EC2D0420A64769A59C30EB026BF
B16DC22ADA7294FCAD55A48FBC75B2E7
449739A14CA12CA085A1AC22C8452567
F795609706681DCA86B1755F7A697832
551B80808C555479BBF065E1266478E2
6CD173B1AC4963DD38F6E7010D8121B0
1EE6416A5396E3B02BBBB15F09583382
FAB0C9651CAB6700A1B1A3E83845BE81
FC02E7F215EAC301F27231CC3568E05C
DF5E888EB6DD8E8EB59C3466A149A5D9
D43FF8A1E13AE1C57F81F51A994B7556
4231EE724734B6AAEFE7CB037977E9F4
AEAD4CFFF9CFC2EB3CE9DD75F8A277ED
10
D043EB64095D326E36A75EF2BD35E96D
D045FFDF76EC790C7F6632842BBD24D3
227E39DFF632B0E45D0AC8BD0AB90A30
824C6594DA81FA5FE0F49F05F6CE9DF9
6D72330916014685C5E92944235D8E06
72B272685D751B3E4EF664BF54B39BDB
1DDF5B95F6705A396FABC9D052768B9C
2E31F0EF63D5D8AF40D9257571AA881F
C7694F00A6FC70052E219C22276896D2
E7711C61ADB5E3FBBB96F522AAAB606E
0D98B9447ACF43177C6095A8286685FB
509C1D5C386770DCB097A3F6217FC247
AC818838492DABE0A24903E681DA44EB
44BB58B731D29040ADE80C9E426BE23B
B166FAF683199602D63F6849F7F55B01
6A7B8F1092E70462B1C5604F41F18177
11
CF131623AA3A4010E1104979190025E4
E6164032DF62C2F1B64825BE8A745F92
08429C6DC89E7F8055A032557CFD31B4
ABF07B2D841CF4D92D097BAC04D52784
7DFC1339F8ECC3847C845AAF70A64492
D80456E40367EAD8BD21B273E911BEB8
53BEAE331736EA12DE74FDE095B71A84
C9C1A6212BBA56AB0A50784659ECFD01
5EF711EF77437F0FC37BFBE09ECE8C0C
332A07E435648382F23AE90BE7BFF4B3
F2D726585766E57CF6F5374E62D1A634
679660D5B6C5267E5095A2D39633F5EF
2F25EB4BB771EEC8855538233ED77CA4
9E6D905595FF01E64D6DE28DAC3A3EC8
15D0A36B5A7C9EAA245559B7B4B04079
965DFDD5A612CC4066D163D560B724AB
12
BEE9A1B94CD339CCA029248536084D1F
05D709299C8D752646A00ABB2C044B62
4D604BC5403388B3FD6DD818508EC015
0C252514146ECF4A84BBF4956BD6D954
45E7027B7783F3574F790B1F0726C382
782697683BECCE5CFEDA4DEFDAB45DB1
C4BF33CA269AF6D50717E7FD4AE88667
EFBCB719F63C965741FD78F4EB1E205B
4A240FD6AB1BA9BE91F79AD8D4F9D292
2BAEB1E5C1E83C30D9BEC33429BE1B0D
B68420AB1EF850C6C90E0F4D2E92CF67
6C71A6CC4BAC752B960B13C8DF5E7971
1D4042369FC58BCDE0BE9434B2F9B13A
000A8F071319F8409A9DEA9320699D6B
97A7175ABC0C6C30E8ABC7C8F0392688
16454386B0B4CD4D24E5F2EF3981D80D
13
BC96A42D97562B1B28F4E0CA7F7F74CB
1BE7CEE1170DB7B7E11D833DC2A02FCA
B7CA6F5B596B2FE814EEE22C75BD1B5A
34578B740EF5FBA9AE5DA2745271CC2B
CD2AEEE0144F814B377C514169E63E8F
68EC1857828D2201A57193F880D03891
3A8286DFA425360FB2950A98BCB4E884
183B189D417328F7982ADECA9F3BF4DD
30AEEBE4EA7C9688348AD63946E4E02D
10BE1FD108380C6E66451F5CD6E7E751
049837480E18FCB03F0422A2210E4B47
5C104A05E8CD671417392D6038A568D0
6333773040D1E9D3B47A47103476FFCA
2BC133E581793032A96E3BA7B78968C3
1CEE42D4DE68465B7758C6F45F47D552
A69C3B27EC639912DC782AC43FED0BBB
14
B5277596EF86A3A83A734FCC52D8ABE0
07C3C49841ED10D5C3986529FFA9E964
05D2B957A8E3E0B4F29C3BE50B6671B2
AB5E2FAAAFAC5FCDF6B5F37E1C0E950F
292A14780B39AC32BEAC4D16DA8DE7E7
E4081EBCEEB6FA3EA12F9C35884E5262
87F5A030B39ECBBE5414293DD360CD8C
B30029F10CC1BEBBB84C187C2F9172C5
94A033497DA75C0F17B591CAB50F2A12
70AB5C8E74EFAB49229138C59A3A6CBF
4A9EFE4F9C22E170F38248A374CD6A04
72BC992825341BD4A579DCCEA0FE7B25
A0E1A86731A31DB84F3A9C2168F6688D
14ED5685749E1076C464929AA65AF456
128D59F42161CA25A55A38355A79172A
1C79680C21129402B7C2F1C12DDEF8DF
15
CAC0011523A171AD3C27C42F0CECF68D
A011CB83FD6A33EAF561C8FAAEB222DD
D08C30A6308CF3ADC0E11394E6E61490
C29A53242E8AF27F0E4CE843B16E8700
41A1A49767A93D8C5089E99E78E89D5F
809DBBC8B4C8182A17E3C8E7C7447BA5
CF3F43720C71F665CD04EC69E5AD58DF
38F8560AD55D97240D8D07C3B5069671
3A9689F22AD2A3D6F1D2D19D7E765820
C699F517E852C3F6C4D2B78A842B0A75
FAD59FC01C067EE2CC13757FE4D8D49A
191A35C63C1FA3C2A25B93D83B241B6B
9B0BEBC104FE65D9068AAB40ADBC498E
56F5E7C5ACF12E809C75B5F92CD37CE1
77AF57181595D92A576984D33E8EB546
16C8C0125F54A694955B1DE4B18A933B
16
CCA6039629DADABFADD33E8EA637387E
807B03B48A41DC050E5D2C8EF38E385E
2F28736FB6EEF9E4CACEC4FBB88F7BCC
FC9224885A57E630C7467595EBBD46E6
1E0CBD22E5B872F5AD4A1C7C548FDF93
48F5E992490973DFAFCF091B54976BF5
B69D6AB9DFEAF1E94A13204930199787
E1D386AF3064A637162352B19F2185CD
09DB0509F4E99EBE2C67478D805E79F9
A018E8FDFCDE48C2588C8116B22DAE17
F3A86A8CBD1FC2BE2FC05B9B3A06E703
FCF38BE94CFF24670CB30B8442E2B0D1
9ACAEE5C671ED261222B1186E3A0D5CB
5585E55B25E3ED8DA7B3780E34E846A0
1BDA58C086245ADDF6D1D65E28C2B32B
EE25E436333DBB1C2F39F059AA519EDD
</pre>
Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 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)