Editing Bluray disc
Jump to navigation
Jump to search
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: | ||
== Overview == | == Overview == | ||
* [http://www.osta.org/specs/pdf/udf260.pdf UDF] filesystem (a profile of [http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-167.pdf ECMA-167]) in cleartext | |||
* File entries are not encrypted, some files are not encrypted | |||
* Some regions of the disc are encrypted (sector by sector) | |||
* One sector is 2048 bytes | |||
* The first sector describes which part of the disc is encrypted (see below) | |||
* The second sector has information about the disc | |||
* [http://www.osta.org/specs/pdf/udf260.pdf UDF] filesystem (a profile of [http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-167.pdf ECMA-167]) | |||
* some files are encrypted | |||
* | |||
* | |||
== Disc Info == | == Disc Info == | ||
Line 68: | Line 52: | ||
</pre> | </pre> | ||
* The first 16 bytes | * The first 16 bytes identidy a PS3 disc. | ||
* The next 32 bytes are the disc ID (with space padding) | * The next 32 bytes are the disc ID (with space padding) | ||
* 0x840: ? | * 0x840: ? | ||
Line 103: | Line 87: | ||
* with the IV 0x69474772af6fdab342743aefaa186287 | * with the IV 0x69474772af6fdab342743aefaa186287 | ||
* no padding | * no padding | ||
* data1 is available in the IRD file | |||
* alternatively data1 can be found on the disc with a bunch of SCSI commands. | |||
* | |||
=== Sector encryption === | === Sector encryption === | ||
Each | Each sector is encrypted with AES CBC: | ||
* using the disc key | * using the disc key | ||
Line 248: | Line 229: | ||
== IRD file == | == IRD file == | ||
3k3y generates [http://jonnysp.bplaced.net/ IRD files] which contains some information about the disc. In particular, it contains "data1" which is used to | 3k3y generates [http://jonnysp.bplaced.net/ IRD files] which contains some information about the disc. In particular, it contains "data1" which is used to derived the disc AES encryption key. | ||
The file is: | The file is: | ||
Line 259: | Line 240: | ||
* Integer are in little endian format: | * Integer are in little endian format: | ||
* Variable length strings use a [https://msdn.microsoft.com/fr-fr/library/system.io.binaryreader.readstring(v=vs.110).aspx compressed length prefix]. | * Variable length strings use a [https://msdn.microsoft.com/fr-fr/library/system.io.binaryreader.readstring(v=vs.110).aspx compressed length prefix]. | ||
Compressed data are compressed with gzipped and prefixed with a length (uint32). | |||
The format is (v6 to v9): | The format is (v6 to v9): | ||
Line 268: | Line 251: | ||
!Example | !Example | ||
!Versions | !Versions | ||
|- | |- | ||
|4B | |4B | ||
Line 274: | Line 256: | ||
|Magic string ("3IRD") | |Magic string ("3IRD") | ||
|3IRD | |3IRD | ||
| | | | ||
|- | |- | ||
Line 281: | Line 262: | ||
|Version | |Version | ||
|6, 7, 8, 9 | |6, 7, 8, 9 | ||
| | | | ||
|- | |- | ||
|9B | |9B | ||
|string | |string | ||
| | |Game ID | ||
|BCES01584 | |BCES01584 | ||
| | | | ||
|- | |- | ||
|var | |var | ||
|string | |string | ||
| | |Game name | ||
|The Last Of Us | |The Last Of Us | ||
| | | | ||
|- | |- | ||
|4B | |4B | ||
|string | |string | ||
| | |Update version | ||
|4.41 | |4.41 | ||
| | | | ||
|- | |- | ||
|5B | |5B | ||
|string | |string | ||
| | |Game version | ||
|4.41 | |4.41 | ||
| | | | ||
|- | |- | ||
|5B | |5B | ||
|string | |string | ||
| App version | |App version | ||
|01.00 | |01.00 | ||
| | | | ||
|- | |- | ||
|4B | |4B | ||
Line 324: | Line 299: | ||
| | | | ||
|v=7 | |v=7 | ||
|- | |- | ||
|var | |var | ||
|compressed | |compressed | ||
|Header | |Header | ||
| | | | ||
| | | | ||
Line 336: | Line 309: | ||
|compressed | |compressed | ||
|Footer | |Footer | ||
| | | | ||
| | | | ||
Line 343: | Line 315: | ||
|uint | |uint | ||
|Region count | |Region count | ||
| | | | ||
| | | | ||
Line 358: | Line 329: | ||
|… | |… | ||
|… | |… | ||
|- | |- | ||
|4B | |4B | ||
|uint | |uint | ||
|File count | |File count | ||
| | | | ||
| | | | ||
Line 372: | Line 341: | ||
| | | | ||
| | | | ||
|- | |- | ||
|16B | |16B | ||
Line 385: | Line 353: | ||
|… | |… | ||
|… | |… | ||
|- | |- | ||
|115B | |115B | ||
Line 398: | Line 359: | ||
| | | | ||
|v=9 | |v=9 | ||
|- | |- | ||
|16B | |16B | ||
|bytes | |bytes | ||
|Data 1 | |Data 1 | ||
| | | | ||
| | | | ||
Line 410: | Line 369: | ||
|bytes | |bytes | ||
|Data 2 | |Data 2 | ||
| | | | ||
| | | | ||
Line 419: | Line 377: | ||
| | | | ||
|v<9 | |v<9 | ||
|- | |- | ||
| | |2B | ||
|uint/bytes | |uint/bytes | ||
|UID | |UID | ||
| | | | ||
| | | | ||
|} | |} | ||
== References == | == References == | ||
Line 445: | Line 389: | ||
* 3k3y IsoTools, this is a .NET program available in binary form. The [https://github.com/icsharpcode/ILSpy ILspy] decompiler produces a very readable output. | * 3k3y IsoTools, this is a .NET program available in binary form. The [https://github.com/icsharpcode/ILSpy ILspy] decompiler produces a very readable output. | ||
* PS3 ISO Patcher by BlackDaemon, is a .NET program available in source code | * PS3 ISO Patcher by BlackDaemon, is a .NET program available in source code | ||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> | {{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> |