Podgląd pojedynczego posta
Stary 23.10.2018, 00:25   #62
MajsterPopsuj
Odmrożony leniwiec
 
Avatar użytkownika MajsterPopsuj
 
Data rejestracji: 02.03.2018
Lokalizacja: Ceres
Posty: 474
MajsterPopsuj niedługo stanie się sławny ;) <50 - 149 pkt>MajsterPopsuj niedługo stanie się sławny ;) <50 - 149 pkt>
Niżej jest teoretycznie poprawny skrypt generujący parę kluczy HDD Key i VFLASH Key. Należy odczytać ERK na konsoli i wrzucić w to samo miejsce co skrypt plik "eid_root_key.bin".
Kod:
        erk_data=$(xxd -p -u -c 32 -l 32 "eid_root_key.bin")
        erk_iv=$(xxd -p -u -c 16 -s -16 "eid_root_key.bin")
        echo "0: D92D65DB057D49E1A66F2274B8BAC508" | xxd -r > 1.tmp
        echo "0: 83844ED756CA79516362EA8ADAC60326" | xxd -r > 2.tmp
        echo "0: C3B3B5AACC74CD6A48EFABF44DCDF16E" | xxd -r > 3.tmp
        echo "0: 379F55F5777D09FBEEDE07058E94BE08" | xxd -r > 4.tmp
        echo "0: E2D05D4071945B01C36D5151E88CB833" | xxd -r > 5.tmp
        echo "0: 4AAA298081D8C44F185DC660ED575686" | xxd -r > 6.tmp
        echo "0: 02083292C305D538BC50E699710C0A3E" | xxd -r > 7.tmp
        echo "0: 55F51CBAA535A38030B67F79C905BDA3" | xxd -r > 8.tmp
        cat 1.tmp 2.tmp > ata_data_seed.bin
        cat 3.tmp 4.tmp > ata_tweak_seed.bin
        cat 5.tmp 6.tmp > encdec_data_seed.bin
        cat 7.tmp 8.tmp > encdec_tweak_seed.bin
        rm *.tmp
        openssl aes-256-cbc -e -in "ata_data_seed.bin" -out "ata_data_key.bin" -K $erk_data -iv $erk_iv -nopad -nosalt
        openssl aes-256-cbc -e -in "ata_tweak_seed.bin" -out "ata_tweak_key.bin" -K $erk_data -iv $erk_iv -nopad -nosalt
        openssl aes-256-cbc -e -in "encdec_data_seed.bin" -out "encdec_data_key.bin" -K $erk_data -iv $erk_iv -nopad -nosalt
        openssl aes-256-cbc -e -in "encdec_tweak_seed.bin" -out "encdec_tweak_key.bin" -K $erk_data -iv $erk_iv -nopad -nosalt
        adk=$(xxd -p -u -c 32 -l 16 ata_data_key.bin)
        atk=$(xxd -p -u -c 32 -l 16 ata_tweak_key.bin)
        edk=$(xxd -p -u -c 32 -l 16 encdec_data_key.bin)
        etk=$(xxd -p -u -c 32 -l 16 encdec_tweak_key.bin)
        echo "$adk" "$atk" | xxd -r -p > hdd_key.bin
        echo "$edk" "$etk" | xxd -r -p > vflash_key.bin
I o ile dysk twardy ze Slim daje się deszyfrować i zamontować, o tyle tylko partycje dev_hdd0 i dev_hdd1. Z jakiegoś powodu dev_flash2 nie działa...

Zaś dysk z Fat w ogóle nie mogę odszyfrować.

Czy ktoś mógłby poświęcić trochę czasu i spróbować na jego modelach? W przykładzie niżej gotowa lista czynności, jeśli HDD nie jest obrazem dysku tylko podłączonym dyskiem należy zastąpić loop1 fizycznym odpowiednikiem (sda, sfb, sdc itd. rzecz jasna zgodne z prawdą, sprawdź za pomocą lsblk).

Kod:
losetup loop1 /media/mint/DMP/ps3hdd_slim.img
'/home/mint/ps3/makedev.sh' '/home/mint/ps3/bswap16.elf' /dev/loop1
cryptsetup create -c aes-xts-plain64 -d /home/mint/ps3/hdd_key.bin -s 256 ps3hdd /dev/nbd0 && kpartx -a /dev/mapper/ps3hdd
ls -la /dev/mapper/
hexdump -C /dev/mapper/ps3hdd | head -16
mount -t ufs -o ufstype=ufs2,ro /dev/dm-2 /home/mint/ps3/dev_hdd0
cd /home/mint/ps3/dev_hdd0 && ls -la

umount -l /home/mint/ps3/dev_hdd0
kpartx -d /dev/mapper/ps3hdd && cryptsetup remove ps3hdd && ./stop-nbd0
losetup -d /dev/loop1
Dla vflash podobno trzeba dodać "-p 8" żeby przeskoczył o 8 sektorów. A dla Fat algorytmem podobno jest "aes-cbc-essiv:sha256".

Załączam programy i skrypty (działa na Linux Mint 18.3, ale na 19.0 v1/v2 już nie!). Nie działa na dystrybucjach live bo loop0 musi być wolny!

Jeśli hexdump zwróci sieczkę, a nie w większości zera to znaczy, że deszyfracja się nie powiodła.
Dołączone obrazki
File Type: png ps3hdd_slim_usrdat_works.png (102.0 KB, 59 oglądane)
File Type: png ps3hdd_fat_vflsh_not-works.png (118.5 KB, 68 oglądane)
Dołączone pliki
File Type: zip ps3hdd_dec_tools.zip (25.8 KB, 33 oglądane)

Ostatnio zmieniany przez MajsterPopsuj : 23.10.2018 o godz. 00:28
MajsterPopsuj jest offline   Odpowiedz cytując ten post