PS4 хакинг и девелопмент Всё о взломе PS4
18.08.2020, 16:45
Сообщение: #1 (1219958)
Модель консоли: Ps5, PS4 Slim,
Прошивка: HEN
Другие консоли: PS5, Xbox Series X, xbox360, PS4 Slim, sega, dendy
Регистрация: 30.04.2017
Адрес: Ставропольский край
Возраст: 39
Сообщений: 6,326
Вы сказали Спасибо: 2,202
Поблагодарили 12,107 раз(а) в 3,135 сообщениях
Сила репутации:
1 Репутация: 18324
(репутация неоспорима)
EAP Key dumper payload for 6.72
EAP Key dumper payload for 6.72
Сегодня PlayStation 4 Разработчик
@zecoxao общий скрипт Python (
hdd_script.py с обновленной версии ниже) через Твиттер от обычного подозреваемого, который преобразует зашифрованный ключ BLOB-объектов, хранящихся в sflash0 в
eap_hdd_key , который затем может быть использован для извлечения данных из любых PS4 консоли (DevKit прямо, розничная, TestKit) с
SFlash свалку!
Скачать:
hdd_script.py (5.29 КБ) /
hdd_script.py (v2) (5.36 КБ - выводит ключи в файл под названием
keys.bin , который будет использоваться в Linux с Cryptmount): hdd_script.py (v2)
hdd_script.py (v3) 5.57 КБ-обработка ошибок на sflash0 size и на magic check, чтобы скрипт жесткого диска работал, дамп sflash0 должен иметь ровно 32 МБ-0x2000000 байт): hdd_script.py (v3)
Код:
from binascii import hexlify as hx
import sys, os, struct
import hashlib, hmac
from Crypto.Cipher import AES
from Crypto.Util import Counter
def aes_encrypt_ecb (key, data) :
crypto = AES.new(key, AES.MODE_ECB)
return crypto.encrypt(data)
def aes_decrypt_ecb (key, data) :
crypto = AES.new(key, AES.MODE_ECB)
return crypto.decrypt(data)
def aes_encrypt_cbc (key, iv, data) :
crypto = AES.new(key, AES.MODE_CBC, iv)
return crypto.encrypt(data)
def aes_decrypt_cbc (key, iv, data) :
crypto = AES.new(key, AES.MODE_CBC, iv)
return crypto.decrypt(data)
def hmac_sha256 (key, data) :
return hmac.new(key=key, msg=data, digestmod=hashlib.sha256).digest()
portability_seed_key = 'E973A44C578757A73492625D2CE2D76B' .decode('hex' )
portability_seed = 'DF0C2552DFC7F4F089B9D52DAA0E572A' .decode('hex' )
portability_key = aes_encrypt_ecb(portability_seed_key, portability_seed)
eap_hdd_key_blob_key1_seed = '7A49D928D2243C9C4D6E1EA8F5B4E229317E0DCAD2ABE5C56D2540572FB4B6E3' .decode('hex' )
eap_hdd_key_blob_key2_seed = '921CE9C8184C5DD476F4B5D3981F7E2F468193ED071E19FFFD66B693534689D6' .decode('hex' )
eap_hdd_key_blob_key1 = aes_encrypt_ecb(portability_key, eap_hdd_key_blob_key1_seed)
eap_hdd_key_blob_key2 = aes_encrypt_ecb(portability_key, eap_hdd_key_blob_key2_seed)
use_new_blob = False
SFLASH0 = open('sflash0' , 'rb' )
data = SFLASH0.read()
print('[DEBUG] ' + hx(data[0x1C91FC :0x1C9200 ]))
if data[0x1C91FC :0x1C9200 ] == '\xE5\xE5\xE5\x01' :
print('[DEBUG] ' + hx(data[0x1C9240 :0x1C9250 ]))
if data[0x1C9240 :0x1C9250 ] == '\xFF' * 16 :
eap_hdd_wrapped_key = data[0x1C9200 :0x1C9240 ]
print('[DEBUG] LEN 40 | ' + hx(eap_hdd_wrapped_key))
else :
eap_hdd_wrapped_key = data[0x1C9200 :0x1C9260 ]
print('[DEBUG] LEN 60 | ' + hx(eap_hdd_wrapped_key))
print('[DEBUG] ' + hx(data[0x1C9060 :0x1C9064 ]))
smi_version = struct.unpack('<i' ,data[0x1C9060 :0x1C9064 ])[0 ]
if use_new_blob:
eap_hdd_key_blob_enc = 'CFFDCB6ECAE612B7A30A9EDBD8F77E261D629DE5E6CA3F22F439211AC033884F4B5D7D16D0A6F65D3173A2586CF819C7C6F437444C1D9499F6EBC4145E0BBAABC1DE7C63ED1F5A1E1946358C7F181B1FAB6DAB31195D8E611A1CB81B9ACF8B38FF21029FAB568C7A1BCC3E2FBEB25B13F1AFD6A3599EEF09EAEBE32684FDDA29' .decode('hex' )
eap_hdd_key_blob_sig = '4798B78DD422601F26A32A1FEC5CAB8B256E50958E0B11A31D77DEE201D4D00E' .decode('hex' )
eap_hdd_key_blob_iv = '462500ECC487F0A8C2F39511E020CC59' .decode('hex' )
else :
eap_hdd_key_blob_enc = 'E073B691E177D39642DF2E1D583D0E9A5A49EDF72BE9412E2B433E51490CE973234B84F49E949F03727331D5456F4598F2EDE6D0C11483B84CE3283243D0DE9DC379E915301A805DFAEB292B30374C9BF1C59041509BF11D215C35D5C08E3330807C8229C930FAB88672C4CF7DACA881C323D72346CA07921DB806FC242A2ED1' .decode('hex' )
eap_hdd_key_blob_sig = 'ED4F32C095847C6D3143EFFD61E7582F75F24465855C4E94DAF34885D8D03463' .decode('hex' )
eap_hdd_key_blob_iv = '3286EA97F3E92C434E1DC170C9289003' .decode('hex' )
selected_key = eap_hdd_key_blob_key1
computed_signature = hmac_sha256(selected_key[0x10 :0x20 ], eap_hdd_key_blob_enc)
if computed_signature != eap_hdd_key_blob_sig:
selected_key = eap_hdd_key_blob_key2
computed_signature = hmac_sha256(selected_key[0x10 :0x20 ], eap_hdd_key_blob_enc)
if computed_signature != eap_hdd_key_blob_sig:
print('error: invalid signature' )
sys.exit()
eap_hdd_key_blob = aes_decrypt_cbc(selected_key[0x00 :0x10 ], eap_hdd_key_blob_iv, eap_hdd_key_blob_enc)
if not eap_hdd_key_blob.startswith('SCE_EAP_HDD__KEY' ):
print('error: invalid magic' )
sys.exit()
eap_hdd_key_blob = 'SCE_EAP_HDD__KEY' + \
'BB6CD66DDC671FAC3664F7BF5049BAA8C4687904BC31CF4F2F4E9F89FA458793811745E7C7E80D460FAF2326550BD7E4D2A0A0D9729DE5D2117D70676F1D55748DC17CDF29C86A855F2AE9A1AD3E915F0000000000000000000000000000000000000000000000000000000000000000' .decode('hex' )
if use_new_blob:
eap_hdd_unwrapped_key = aes_decrypt_cbc(eap_hdd_key_blob[0x60 :0x70 ], '\0' * 0x10 , eap_hdd_wrapped_key[:0x40 ])
else :
eap_hdd_unwrapped_key = aes_decrypt_cbc(eap_hdd_key_blob[0x50 :0x60 ], '\0' * 0x10 , eap_hdd_wrapped_key[:0x40 ])
eap_hdd_key_offset = 0x10 if (smi_version == 0xFFFFFFFF or smi_version < 0x4000000 ) else 0x20
eap_hdd_unwrapped_key_dec = aes_decrypt_cbc(eap_hdd_key_blob[eap_hdd_key_offset:eap_hdd_key_offset + 0x10 ], '\0' * 0x10 , eap_hdd_unwrapped_key)
if eap_hdd_unwrapped_key_dec[0x10 :0x20 ] != '\0' * 0x10 :
eap_hdd_unwrapped_key_dec = aes_decrypt_cbc(eap_hdd_key_blob[eap_hdd_key_offset:eap_hdd_key_offset + 0x10 ], '\0' * 0x10 , eap_hdd_wrapped_key[:0x10 ])
if use_new_blob:
eap_partition_key = hmac_sha256(eap_hdd_unwrapped_key_dec[:0x10 ], eap_hdd_key_blob[0x40 :0x50 ])
else :
eap_partition_key = hmac_sha256(eap_hdd_unwrapped_key_dec[:0x10 ], eap_hdd_key_blob[0x30 :0x40 ])
tweak_key = eap_partition_key[0x00 :0x10 ]
data_key = eap_partition_key[0x10 :0x20 ]
print('XTS data key:' , data_key.encode('hex' ).upper())
print('XTS tweak key:' , tweak_key.encode('hex' ).upper())
keys = open('keys.bin' , 'wb' )
keys.write(data_key)
keys.write(tweak_key)
Как уже отмечалось ранее, в прошивке PS4 6.50 Sony представила новое ядро жесткого диска EAP... и это происходит после
Руководства по получению вашего PS4 SFlash через корневой FTP-сервер PS4 ,
расшифрованного скрипта ключа раздела EAP (SAMU расшифрует ключ), некоторых дампов ядра PS4 EAP, редактора реестра PS4 для изучения результирующей system.eap и
PS4 EAP Key Dumping and Decrypting Guide video tutorial.
Затем появился
жесткий диск PS4 для чтения конфигурационного файла Cryptmount и подробные сведения о том, как автоматически сбросить ключ PS4 EAP в
/etc/cryptsetp/eap_hdd_key.bin через
PSXITArch Linux v2 без использования OrbisMAN,
Sflash0unpack и PS4 Sflash0 инструменты для распаковки файлов SFlash0 в PS4 Flash dumps наряду с версией Python,
руководством по установке жесткого диска PS4 в Linux на ПК и PS4-EAP-KEY-DUMPER-672.bin, которая сбрасывает ключ PS4 EAP в
/mnt / usb0 / eap_key.bin для использования с Джейлбрейкнутыми консолями PS4 6.72.
Наконец, ниже приводится краткое резюме
@CelesteBlue о том, что теперь возможно с помощью
hdd_script.py из приведенных ниже твитов можно процитировать:
Это означает, что отныне любой может читать свои данные PS4 HDD/SSD после того, как использовал аппаратную мигалку для сброса своей флэш-памяти.
До этого только эксплуатируемые консоли PS4 могли это делать, сбрасывая запущенную память ядра или с помощью выполнения ядра.
Резюме:
На данный момент, чтобы иметь возможность получить доступ к вашему содержимому PS4 HDD / SSD, вы можете сделать:
для PS4s на FWs
для PS4s на любом FW: dump by hardware ваш PS4 sflash0 затем запустите скрипт для преобразования в eap_hdd_key.
Скачать:
Последний раз редактировалось jekakmv; 22.08.2020 в 20:32 .
Эти 2 пользователя(ей) сказали Спасибо jekakmv за это полезное сообщение:
23.08.2020, 13:39
Сообщение: #2 (1220217)
Регистрация: 16.10.2016
Сообщений: 6
Вы сказали Спасибо: 0
Поблагодарили 5 раз(а) в 2 сообщениях
Сила репутации:
0 Репутация: 5
(с надеждой на лучшее)
Как этим пользоваться для копирования игр с одного аккаунта на другие приставки?
23.08.2020, 15:09
Сообщение: #3 (1220223)
Модель консоли: Ps5, PS4 Slim,
Прошивка: HEN
Другие консоли: PS5, Xbox Series X, xbox360, PS4 Slim, sega, dendy
Регистрация: 30.04.2017
Адрес: Ставропольский край
Возраст: 39
Сообщений: 6,326
Вы сказали Спасибо: 2,202
Поблагодарили 12,107 раз(а) в 3,135 сообщениях
Сила репутации:
1 Репутация: 18324
(репутация неоспорима)
Сообщение от
Azartur
Как этим пользоваться для копирования игр с одного аккаунта на другие приставки?
Ждем развития событий дальше...
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 22:28 . Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод:
zCarot
PSPx Forum - Сообщество фанатов игровых консолей.