DSM/Mitsubishi CAPS

From Jane Hacker Wiki
Jump to navigation Jump to search

File Formats

IDX - Index

Index files are broken up into 2048 byte chunks, which I will refer to as "pages". Index file must be at least 1 page in size, meaning the smallest IDX file will be 2048 bytes, filled mostly with null bytes(00h).

Header

The first 32 bytes of each page is the "header". The header's first 8 bytes contain the filename, if the filename is less than 8 bytes the remaining bytes will be padded with 20h. After the name is "IDX", followed by 00h as a seperator.

Byte 13 (14th byte) is the "page number", starting with 01h and incrementing each page.

Bytes 14-32 appear to be other informational flags which have yet to be understood.

Byte # Description
0-7 Uppercase ASCII, matches file name, if name < 8 bytes it is padded with 20h
8-10 49h 44h 58h, literal: "IDX", Uppercase ASCII
11 Always 00h, separator or null byte for the string?
12 Always the same in all headers that are in the same file, often seen: 09h 11h, is this multiplier or record length?
13 The "page" count, starts at 01h increments by 1 every "header"
14-31 Other flags
22 Number of records on this page

index entry

Byte # Description

Examples

NU = NULL BYTE (00h)
PA = PADDING (20h)


SEIBI.IDX - 2048 bytes

Byte : 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Hex  : 53 45 49 42 49 20 20 20 49 44 58 00 09 01 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 39 39 39 39 39 39 39 39 39 01
ASCII: S  E  I  B  I           I  D  X                                                                 9  9  9  9  9  9  9  9  9

UNKATA.IDX - 2048 bytes

Byte : 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Hex  : 55 4E 4B 41 54 41 20 20 49 44 58 00 09 01 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 39 39 39 39 39 39 39 39 39 01
ASCII: U  N  K  A  T  A        I  D  X                                                                 9  9  9  9  9  9  9  9  9

SHARYO.IDX - bytes

#Header - 32 bytes:                            \/ Page (1)                  \/ Number of records
Byte : 0  1  2  3  4  5  6  7  8  9  10 11 12  13  14 15 16 17 18 19 20 21  22  23 24 25 26 27 28 29 30 31
Hex  : 53 48 41 52 59 4F 20 20 49 44 58 00 11  01  00 00 00 00 00 00 00 00  06  00 00 00 00 00 00 00 00 00
ASCII: S  H  A  R  Y  O        I  D  X
Data :                   PA PA          NU 11  1                            6

#VIN (02) - 21 bytes                                       \/-- Count Column (2)
       {                                        17 bytes }
Byte : 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  49  50 51 52
Hex  : 34 41 33 41 43 38 34 4C 33 59 45 30 35 31 32 36 31  02  00 00 00
ASCII: 4  A  3  A  C  8  4  L  3  Y  E  0  5  1  2  6  1
Data :                                                     2   NU NU NU

#VIN (03) - 21 bytes
Hex  : 34 41 33 43 53 34 34 54 58 4D 45 30 30 36 31 30 36  03  00 00 00
ASCII: 4  A  3  C  S  4  4  T  X  M  E  0  0  6  1  0  6
Data :                                                     3   NU NU NU

#VIN (04) - 21 bytes
Hex  : 4A 41 33 41 4D 36 34 4A 37 52 59 30 30 35 33 35 33  04  00 00 00
ASCII: J  A  3  A  M  6  4  J  7  R  Y  0  0  5  3  5  3
Data :                                                     4   NU NU NU

#VIN (05) - 21 bytes
Hex  : 4A 41 34 47 4A 33 31 53 31 4D 4A 30 31 33 39 31 34  05  00 00 00
ASCII: J  A  4  G  J  3  1  S  1  M  J  0  1  3  9  1  4
Data :                                                     5   NU NU NU

#VIN (06) - 21 bytes
Hex  : 4A 41 37 4C 53 32 31 47 34 52 50 30 31 32 37 33 34  06  00 00 00
ASCII: J  A  7  L  S  2  1  G  4  R  P  0  1  2  7  3  4
Data :                                                     6   NU NU NU

#??? (07) - 18 bytes
Hex  : 5A 31 36 41 57 59 30 59 30 30 31 36 39 37 20 20 20  07 ... \
ASCII: Z  1  6  A  W  Y  0  Y  0  0  1  6  9  7               ... + 1893 Null Bytes (2048 byte total header space)
Data :                                           PA PA PA  7  ... /
                                             | Always 11??
#Header 2 (Start at 2048 Bytes) - 32 Bytes  \/   \/Page? (2)                  \/ Number of records
Byte : 0  1  2  3  4  5  6  7  8  9  10 11  12   13  14 15 16 17 18 19 20 21  22  23 24 25 26 27 28 29 30 31
Hex  : 53 48 41 52 59 4F 20 20 49 44 58 00  11   02  00 01 01 00 01 00 00 00  60  00 00 00 00 00 00 00 00 00
ASCII: S  H  A  R  Y  O        I  D  X                                        '
Data :                   PA PA          NU  11   2      1  1     1            60           
#Indexes from page 3                                       \/-- Count Column (68)
Hex  : 34 41 33 41 43 38 34 4C 39 59 45 30 31 38 33 37 36  68  00 00 00 
ASCII: 4  A  3  A  C  8  4  L  9  Y  E  0  1  8  3  7  6   h
Data :                                                     68  NU NU NU

Hex  : 34 41 33 41 45 34 35 47 31 33 45 31 33 38 36 34 30  69  00 00 00
ASCII: 4  A  3  A  E  4  5  G  1  3  E  1  3  8  6  4  0   i
Data :                                                     69  NU NU NU

Hex  : 34 41 33 41 45 34 35 47 36 31 45 30 33 30 33 32 30  6A  00 00 00
ASCII: 4  A  3  A  E  4  5  G  6  1  E  0  3  0  3  2  0   j
Data :                                                     6A  NU NU NU

Hex:
ASCII:
Data:

DAT - ?Data?