Mounting HDD in Linux

From PS4 Developer wiki
Revision as of 15:26, 15 March 2020 by Roxanne (talk | contribs)
Jump to navigation Jump to search
  • Unlike the ps3, where every part of perconsole security (including the HDD) is dictated by the eid_root_key, the ps4 has two perconsole keys for the HDD, one is handled by SAMU (we cannot obtain this key atm) and the other is handled by the South Bridge / AEOLIA / BELIZE (which we can obtain)
  • Here I describe the steps to mount your hdd on the pc using the cryptmount utility on Linux

Setup

  • EAP HDD Key (check in your kernel dump and in hxxps://github.com/Ps3itaTeam/ps4-kexec/blob/master/magic.h kern_off_eap_hdd_key offset)
  • Linux Distro (i'm using xubuntu live for this)
  • cmtab file

Step by Step Guide (CUH-1000)

  • cmtab file can be as follows (example for xubuntu live)
# /etc/cryptmount/cmtab - encrypted filesystem information for cryptmount
# try 'man 8 cryptmount' or 'man 5 cmtab' for more details
user {
    dev=/dev/sda27
    dir=/home/xubuntu/Desktop/user
    flags=user,nofsck

    fstype=ufs mountoptions=ro,noatime,noexec,ufstype=ufs2

    cipher=aes-xts-plain64
    keyfile=/home/xubuntu/Desktop/eap.bin
    keyformat=raw
}
  • if your key in the kernel dump looks like this:
D2 60 86 B3 8B D2 D3 5A EC 76 DB DE 50 30 00 40
15 D6 AE 04 44 3D A8 59 4B 03 3C 1F 0A DD FA 6B
  • then the correct key will be:
40 00 30 50 DE DB 76 EC 5A D3 D2 8B B3 86 60 D2
6B FA DD 0A 1F 3C 03 4B 59 A8 3D 44 04 AE D6 15
  • after the key file eap.bin is created and the user folder is also created in the Desktop, install cryptmount
sudo apt install cryptmount
  • and then mount your partition
sudo cryptmount user

== Step by Step Guide (CUH-1100 and above)

  • In this case the cmtab will have a small change
# /etc/cryptmount/cmtab - encrypted filesystem information for cryptmount
# try 'man 8 cryptmount' or 'man 5 cmtab' for more details
user {
    dev=/dev/sda27
    dir=/home/xubuntu/Desktop/user
    flags=user,nofsck

    fstype=ufs mountoptions=ro,noatime,noexec,ufstype=ufs2

    cipher=aes-xts-plain64
    ivoffset=111669149696

    keyfile=/home/xubuntu/Desktop/eap.bin
    keyformat=raw
}
  • where iv offset is a number of partition - 1 << 32
  • here it'll be (27-1)<<32=111669149696