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) if it has 1 or 2 indexes (there are 60 indexes per page in SHARYO.IDX for example).

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 2
       { 17 bytes                                        } \/-- Count Column (8)
Hex  : 32 36 41 58 4E 20 20 45 30 38 37 35 34 31 20 20 20  08  00 00 00
ASCII: 2  6  A  X  N        E  0  8  7  5  4  1
Data :                PA PA                      PA PA PA  8   NU NU NU

Hex  : 33 34 42 31 52 20 20 45 30 39 35 37 37 32 20 20 20  09  00 00 00 
ASCII: 3  4  B  1  R        E  0  9  5  7  7  2         
Data :                PA PA                      PA PA PA  9   NU NU NU

Hex  : 33 34 42 33 52 20 20 45 30 38 32 30 37 30 20 20 20  0A  00 00 00
ASCII: 3  4  B  3  R        E  0  8  2  0  7  0            
Data :                PA PA                      PA PA PA  10  NU NU NU
#Header 3
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  03  00 01 01 00 02 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  3      1  1     2            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?