A new thread for discussion of did.dat extraction techniques.
To start is a post I made on another thread describing the did.dat layout for TAW:
The TAW (and most other) did.dat files are of this form:
The first 4 bytes are pointer to to the index section at the end of the file.
In the case of TAW’s this is 0x03cc22ae which gets us to this point:
At this point are 4 16-bit numbers:
0x312c=12588 The number of files in the archive
0x0069=105 Number of path specifiers
0x0047=71 Number of file extensions
0x06e1=1761 Number of bytes until the start of the index (ie to the point after the paths and extensions) are listed:
Now we have the list proper and there are 12 bytes for each of the 12588 files:
The first 4 bytes are a mysterious index, then 4 bytes for the offset in did.dat, finally 4 bytes for the file size.
In this case we have:
Index=0x8006c719, Offset=0x02bd558a, Size=0x00000068
The hope would be that this index
is a compressed version of the filename, but hope is fading …
These index
numbers increment in a strange way, the differences don’t correspond to the compressed or uncompressed sizes of the files they relate to.
This index is of TFX’s 3460 files, but you get the idea. I’ve left the index as hex, but converted the offsets and sizes to decimal:
0 80117f36 1572576 415 1 8020f12b 1714256 421 2 802fc869 3142886 40 3 80310755 1706269 432 4 80416965 1068735 206 5 8045e661 3154385 240 6 80487169 1397285 587 7 8052fd69 1248725 526 8 805fc74a 2916069 940 9 80624825 3132188 40 10 806d494a 1881578 1702 11 8075a665 3155401 267 12 8078b479 3117002 40 13 807b5549 1708292 536 14 8080b759 1371479 859 15 80861761 1068095 437 16 80897c35 3169674 152 17 808b6635 3171708 152 18 808d6835 3173492 152 19 808dcb35 1571740 836 20 808fdb50 3274013 4610 21 80903553 2814718 607 22 80910579 1227034 346 23 80913f53 2819051 156 24 80923953 2819948 156 25 809c1532 1674678 122 26 80a31f35 1583159 196 27 80a38c23 3162430 183 28 80a51935 1585754 308 29 80ab154d 1712500 655 30 80b93c35 3171252 152 31 80bb2635 3173120 124 32 80bd2835 3176176 152 … 2857 afcfa293 10413207 169 2858 afd60c8a 2541536 5756 2859 afd7a493 10376338 214 2860 afd8a291 10378145 246 2861 afda332b 1715744 1156 2862 afdaa5d4 1939414 141 2863 afdfaaa8 3213531 82 2864 afe9ffd9 1594625 302 2865 aff993a9 1885281 130 2866 affbb7a0 1961241 552 2867 30209303 1511452 565 2868 30db9c02 1981640 15589 2869 3210a202 3159339 30 2870 3966dc01 333934 5678 2871 3c168102 3496343 133 2872 3e3cb702 1840737 204 2873 3f3eb502 1895112 1830 2874 40060605 1043223 4895 2875 40ba5904 1640423 5796 2876 41080405 1048118 3733 … 3445 7f095d29 2809104 603 3446 7f31fc35 3156283 40 3447 7f3f522e 2265448 140 3448 7f498535 1502889 431 3449 7f4d9d35 1503320 412 3450 7f632629 7075180 6017 3451 7f845429 3194679 40 3452 7f87912d 1656202 756 3453 7fb41429 3194919 40 3454 7fccf939 1222871 565 3455 7fd5d638 3390152 8639 3456 7fd9282a 2092604 198 3457 7fe9a529 1918678 113 3458 7feadc2c 3196081 50 3459 7ff3e635 4247747 120866





















