Line 64: |
Line 64: |
| * If the uint32 @ 0x168 into the image in the DISA is a %1=1, then first table is is hashed, otherwise the second DIFI table is hashed. | | * If the uint32 @ 0x168 into the image in the DISA is a %1=1, then first table is is hashed, otherwise the second DIFI table is hashed. |
| * If the table has more then 1 DIFI then the uint32 @ 0x168 is the offset from the DATA partition to the file base (masked with 0xFFFFFFFE). | | * If the table has more then 1 DIFI then the uint32 @ 0x168 is the offset from the DATA partition to the file base (masked with 0xFFFFFFFE). |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! Start |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 4 |
| + | | Magic ("DISA") |
| + | |- |
| + | | 0x04 |
| + | | 4 |
| + | | Unknown |
| + | |- |
| + | | 0x08 |
| + | | 8 |
| + | | Unknown |
| + | |- |
| + | | 0x10 |
| + | | 8 |
| + | | Offset to first "DIFI" blob in DISA (usually 0x0200) |
| + | |- |
| + | | 0x18 |
| + | | 8 |
| + | | Offset to second "DIFI" blob in DISA (usually 0x0330) |
| + | |- |
| + | | 0x20 |
| + | | 8 |
| + | | Size of the first "DIFI" blob |
| + | |- |
| + | | 0x28 |
| + | | 8 |
| + | | Unknown (padding?) |
| + | |- |
| + | | 0x30 |
| + | | 8 |
| + | | Size of the second "DIFI" blob |
| + | |- |
| + | | 0x38 |
| + | | 8 |
| + | | Unknown (padding?) |
| + | |- |
| + | | 0x40 |
| + | | 4*10 |
| + | | Unknown |
| + | |- |
| + | | 0x68 |
| + | | 4 |
| + | | Active table (and the offset to the filebase) |
| + | |- |
| + | | 0x6C |
| + | | 0x20 |
| + | | Hashes |
| + | |- |
| + | | 0x8C |
| + | | 4*29 |
| + | | Unknown |
| + | |} |
| + | |
| | | |
| <pre> | | <pre> |
Line 92: |
Line 152: |
| Actually DIFI blobs are 0x12C large because the last 4 are not used and appear 0xFFFFFFFF at the encrypted image. | | Actually DIFI blobs are 0x12C large because the last 4 are not used and appear 0xFFFFFFFF at the encrypted image. |
| | | |
− | For most games there's only 1 partition (The SAVE partition) and some (like Ashpalt 3D and Steel Diver) has 2 partitions. | + | For most games there's only 1 partition (The SAVE partition) and some (like Asphalt 3D and Steel Diver) has 2 partitions. |
| | | |
| * 2 Partitions means that the files inside the SAVE partition is on the other partition (we would call it DATA partition). | | * 2 Partitions means that the files inside the SAVE partition is on the other partition (we would call it DATA partition). |
| | | |
− | * No more than 2 paritions have been seen yet. | + | * No more than 2 partitions have been seen yet. |
| | | |
| {| class="wikitable" | | {| class="wikitable" |
Line 106: |
Line 166: |
| | 0x00 | | | 0x00 |
| | 4 | | | 4 |
− | | Magic "DIFI" | + | | Magic ("DIFI") |
| |- | | |- |
| | 0x04 | | | 0x04 |
Line 130: |
Line 190: |
| | 0x28 | | | 0x28 |
| | 8 | | | 8 |
− | | Offset to the hashes blob in DIFI (usually 0x010C) | + | | Offset to the hashes in DIFI (usually 0x010C) |
| |- | | |- |
| | 0x30 | | | 0x30 |
| | 8 | | | 8 |
− | | Size of this hashes blob | + | | Size of this hashes |
| |- | | |- |
| | 0x38 | | | 0x38 |
− | | 0xC | + | | 8 |
| + | | Unknown |
| + | |- |
| + | | 0x40 |
| + | | 4 |
| | Unknown (0x00 filled) | | | Unknown (0x00 filled) |
| |} | | |} |