Editing LIC.DAT
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: | ||
* Location: /dev_bdvd/PS3_GAME/LICDIR/LIC.DAT | |||
* checked within Level 2 Kernel and possible via lv2syscall476 | |||
== | = example = | ||
00000000 50 53 33 4C 49 43 44 41 00 00 00 01 80 00 00 00 PS3LICDA........ | |||
00000010 00 00 09 00 00 00 08 00 00 00 01 00 00 00 00 01 ................ | |||
00000020 8C D3 A9 D8 00 00 00 00 00 00 00 00 00 00 00 00 ................ | |||
... | |||
00000800 01 42 4C 45 53 30 31 36 32 33 00 00 00 00 00 00 .BLES01623...... | |||
... | |||
= structure = | |||
== header == | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
! Address !! Length !! Value !! Description | |||
|- | |- | ||
| | | 0x0 || 0x8 || 'PS3LICDA' || magic | ||
|- | |- | ||
| | | 0x8 || 0x4 || 0x1 || Version | ||
|- | |- | ||
| | | 0xC || 0x4 || 0x80000000 || debug=0x0/retail=0x80000000 | ||
|- | |- | ||
| | | 0x10 || 0x4 || 0x00000900 || ending = beginning of chunks + chunk amounts * size | ||
|- | |- | ||
| | | 0x14 || 0x4 || 0x00000800 || beginning of chunks (static) | ||
|- | |- | ||
| | | 0x18 || 0x4 || 0x00000100 || chunk size (static) | ||
|- | |- | ||
| | | 0x1C || 0x4 || 0x00000001 || chunk amounts | ||
|- | |- | ||
| | | 0x20 || 0x4 || 0xD8A9D38C|| CRC32 of all bytes til ending, without CRC32 value | ||
|} | |} | ||
=== | == chunk == | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
! | ! Address !! Length !! Value !! Description | ||
|- | |- | ||
| | | 0x800 || 0x1 || 0x1 || kind of ID | ||
|- | |- | ||
| | | 0x801 || ID depending || 'BLES01623' || Title ID / Contend ID | ||
|} | |} | ||
The first byte indicates type and size of following text: | The first byte indicates type and size of following text: | ||
* 0x01 means 0xA bytes, a regular TitleID | * 0x01 means 0xA bytes, a regular TitleID with \0 terminating | ||
* 0x02 means 0x2A bytes | * 0x02 means 0x2A bytes | ||
* 0x03 means 0x25 bytes, a regular npdrm ContentID | * 0x03 means 0x25 bytes, a regular npdrm ContentID with \0 terminating | ||