From the analysis performed so far, here are some findings:
Here are 2 files of interest for the DEV community.
- The HDD is encrypted with a (most probably) Sony proprietary format.
- If Linux is setup on the machine, the HDD will contain the relevant ext2 or ext3 partitions, but it will NOT be visible to a regular OS. This is because, the HDD does NOT have a standard partition table. If one uses WinHex to scan the HDD, then the program will find the ext2/ext3/swap partitions at their respective offsets.
- A program has been written to scan blocks of 16bytes for where contiguous data is on the HDD. This program has identified major blocks of data on a freshly formatted 60GB HDD.
- Of major interest is that right around the 380MB marker, we start seeing blocks of 64KB data, and this repeats itself EVERY 183.72MBs. Why does a system need 64KB worth of markers every so often, is a mystery at the moment.
- Each HDD is "individualized" the moment it is formatted on a particular PS3 unit. An individualized HDD CANNOT be used in another PS3 unit due to (in theory) a unit based signature being written to each HDD.
- A project is underway to "individualize" 2 same make and model (Seagate Momentus 60GB 2.5" SATA) HDDs and perform a byte level diff to spot differences in the disk layouts.
- This diff will also be analyzed by the data block scanning program mentioned in Item-3 above.
DISCLAIMER: these files are posted here for STRICTLY EDUCATIONAL PURPOSES. I hereby disclaim any harm that may arise from the use of the programs and the information posted here. You accept that you are doing this at your own risk.
Some information about the files:
HDD Info.xls: contains Start and End addresses of a minimum of 16-byte contiguous data blocks. Contiguous data block is defined as any 16-byte block that is not ALL ZEROES.
scan.rar: compressed source code for the "scan hdd" program that has been compiled on Linux. It currently does NOT support large HDD addresses due to 64-bit limitation on variables. It is planned for the program to have 128-bit variable support with publicly available libraries. Any suggestions are welcome.