|
1 | | -El archivo está en little endian |
2 | | -Se separa de 4 en 4 bytes |
3 | | - |
4 | | -Identificadores: |
5 | | - 0 - null |
6 | | - 1 - Booleano |
7 | | - 2 - Entero |
8 | | - 3 - Flotante |
9 | | - 4 - Lista |
10 | | - 5 - Cadena de texto |
11 | | - 6 - Objeto |
12 | | - |
13 | | -Un conjunto de 4 bytes antes del inicio de la región de textos indica la longitud de caracteres |
14 | | -de la región. |
15 | | - |
16 | | --- Información específica |
17 | | - Estructuras: |
18 | | - 0 - null |
19 | | - Identificador - 00 00 00 00 |
20 | | - Valor - 00 00 00 00 |
21 | | - Empty - 00 00 00 00 |
22 | | - 1 - Booleano |
23 | | - Identificador - 01 00 00 00 |
24 | | - Valor - (01 00 00 00) ó (00 00 00 00) True or False respectivamente |
25 | | - Espacio vacío - 4 bytes nulos |
26 | | - |
27 | | - 2 - Entero |
28 | | - Identificador - 02 00 00 00 |
29 | | - Valor - 4 bytes signed integrer little endian |
30 | | - Espacio vacío - 4 bytes nulos |
31 | | - |
32 | | - 3 - Flotante |
33 | | - Identificador - 03 00 00 00 |
34 | | - Valor - 4 bytes número en formato de 32 bits de punto flotante little endian |
35 | | - Espacio vacío - 4 bytes nulos |
36 | | - |
37 | | - 4 - Lista |
38 | | - Identificador - 04 00 00 00 |
39 | | - Longitud en objetos - 4 bytes unsigned integrer little endian |
40 | | - Longitud final - 4 bytes que representan la suma de todos los elementos |
41 | | - internos de aquellos elementos que se hayan cerrado |
42 | | - antes que este y que sean del mismo tipo. |
43 | | - |
44 | | - 5 - Cadena de texto: |
45 | | - Identificador - 05 00 00 00 |
46 | | - Hash - 4 bytes little endian |
47 | | - Posición del texto en región de textos - 4 bytes unsigned integrer little endian |
48 | | - |
49 | | - 6 - Objeto |
50 | | - Identificador - 06 00 00 00 |
51 | | - Longitud en objetos - 4 bytes unsigned integrer little endian |
52 | | - Longitud final - 4 bytes que representan la suma de todos los elementos |
53 | | - internos de aquellos elementos que se hayan cerrado |
54 | | - antes que este y que sean del mismo tipo. |
55 | | - |
56 | | - Regiones: |
57 | | - - Estructura |
58 | | - En esta región se encuentran almacenados todos los elementos que existen en el archivo con su tipo |
59 | | - y estructura respectivamente, así como datos simples, sin incluir los textos pero si sus posiciones |
60 | | - en la siguiente región. Inicia indicando la longitud en elementos que contiene la región, cada elemento |
61 | | - se conforma por 3 conjuntos de 4 bytes. El primero será el identificador de qué tipo de dato es, el siguiente |
62 | | - suele ser su valor, y el tercero solo se usa en tipos de datos object, array y strings. |
63 | | - |
64 | | - - Textos |
65 | | - Los textos usados por los elementos declarados como textos se ecnuentran almacenados en esta región. |
66 | | - Inicia declarando con 4 bytes en little endian el largo en bytes de toda la región, seguido de todos |
67 | | - los textos juntos, cada uno terminado con un byte nulo. |
68 | | - |
69 | | - - Objetos sin cabeceras |
70 | | - Esta región indica aquellos elementos que no incluyen cabeceras, se usa para aquellos elementos que |
71 | | - se encuentran dentro de una lista. Inicia indicando la longitud de elementos de la región, seguido del |
72 | | - índice de aquel elemento que no tiene cabecera. Cada indicador se representa igualmente con 4 bytes en |
73 | | - little endian. Se van agregando conforme las listas se vayan cerrando. Los elementos de la lista a su |
74 | | - vez se agregan en orden normal. |
75 | | - |
76 | | - - Posiciones de cabeceras |
77 | | - Aquí es donde se encuentra la información de cada cabecera y el índice del elemento al que pertenece. Inicia |
78 | | - con 4 bytes indicando la cantidad de elementos con los que cuenta, estos elementos a su vez tienen una longitud |
79 | | - de 3 conjuntos de 4 bytes. Los primeros 4 bytes son un checksum del texto de la cabecera, los siguientes |
80 | | - son la posición del texto de la cabecera en la siguiente región, y el último conjunto es el índice del elemento |
81 | | - al que pertenece. El orden en el que se van agregando elementos a esta zona se sigue investigando. |
82 | | - |
83 | | - - Texto de las cabeceras |
84 | | - Esta región funciona igual que la región de los Textos. La única diferencia es que almacena el texto de las |
85 | | - cabeceras y no los valores que son strings. |
| 1 | +El archivo está en little endian |
| 2 | +Se separa de 4 en 4 bytes |
| 3 | +
|
| 4 | +Identificadores: |
| 5 | + 0 - null |
| 6 | + 1 - Booleano |
| 7 | + 2 - Entero |
| 8 | + 3 - Flotante |
| 9 | + 4 - Lista |
| 10 | + 5 - Cadena de texto |
| 11 | + 6 - Objeto |
| 12 | +
|
| 13 | +Un conjunto de 4 bytes antes del inicio de la región de textos indica la longitud de caracteres |
| 14 | +de la región. |
| 15 | +
|
| 16 | +-- Información específica |
| 17 | + Estructuras: |
| 18 | + 0 - null |
| 19 | + Identificador - 00 00 00 00 |
| 20 | + Valor - 00 00 00 00 |
| 21 | + Empty - 00 00 00 00 |
| 22 | + 1 - Booleano |
| 23 | + Identificador - 01 00 00 00 |
| 24 | + Valor - (01 00 00 00) ó (00 00 00 00) True or False respectivamente |
| 25 | + Espacio vacío - 4 bytes nulos |
| 26 | +
|
| 27 | + 2 - Entero |
| 28 | + Identificador - 02 00 00 00 |
| 29 | + Valor - 4 bytes signed integrer little endian |
| 30 | + Espacio vacío - 4 bytes nulos |
| 31 | +
|
| 32 | + 3 - Flotante |
| 33 | + Identificador - 03 00 00 00 |
| 34 | + Valor - 4 bytes número en formato de 32 bits de punto flotante little endian |
| 35 | + Espacio vacío - 4 bytes nulos |
| 36 | +
|
| 37 | + 4 - Lista |
| 38 | + Identificador - 04 00 00 00 |
| 39 | + Longitud en objetos - 4 bytes unsigned integrer little endian |
| 40 | + Longitud final - 4 bytes que representan la suma de todos los elementos |
| 41 | + internos de aquellos elementos que se hayan cerrado |
| 42 | + antes que este y que sean del mismo tipo. |
| 43 | +
|
| 44 | + 5 - Cadena de texto: |
| 45 | + Identificador - 05 00 00 00 |
| 46 | + Hash - 4 bytes little endian |
| 47 | + Posición del texto en región de textos - 4 bytes unsigned integrer little endian |
| 48 | +
|
| 49 | + 6 - Objeto |
| 50 | + Identificador - 06 00 00 00 |
| 51 | + Longitud en objetos - 4 bytes unsigned integrer little endian |
| 52 | + Longitud final - 4 bytes que representan la suma de todos los elementos |
| 53 | + internos de aquellos elementos que se hayan cerrado |
| 54 | + antes que este y que sean del mismo tipo. |
| 55 | +
|
| 56 | + Regiones: |
| 57 | + - Estructura |
| 58 | + En esta región se encuentran almacenados todos los elementos que existen en el archivo con su tipo |
| 59 | + y estructura respectivamente, así como datos simples, sin incluir los textos pero si sus posiciones |
| 60 | + en la siguiente región. Inicia indicando la longitud en elementos que contiene la región, cada elemento |
| 61 | + se conforma por 3 conjuntos de 4 bytes. El primero será el identificador de qué tipo de dato es, el siguiente |
| 62 | + suele ser su valor, y el tercero solo se usa en tipos de datos object, array y strings. |
| 63 | +
|
| 64 | + - Textos |
| 65 | + Los textos usados por los elementos declarados como textos se ecnuentran almacenados en esta región. |
| 66 | + Inicia declarando con 4 bytes en little endian el largo en bytes de toda la región, seguido de todos |
| 67 | + los textos juntos, cada uno terminado con un byte nulo. |
| 68 | +
|
| 69 | + - Objetos sin cabeceras |
| 70 | + Esta región indica aquellos elementos que no incluyen cabeceras, se usa para aquellos elementos que |
| 71 | + se encuentran dentro de una lista. Inicia indicando la longitud de elementos de la región, seguido del |
| 72 | + índice de aquel elemento que no tiene cabecera. Cada indicador se representa igualmente con 4 bytes en |
| 73 | + little endian. Se van agregando conforme las listas se vayan cerrando. Los elementos de la lista a su |
| 74 | + vez se agregan en orden normal. |
| 75 | +
|
| 76 | + - Posiciones de cabeceras |
| 77 | + Aquí es donde se encuentra la información de cada cabecera y el índice del elemento al que pertenece. Inicia |
| 78 | + con 4 bytes indicando la cantidad de elementos con los que cuenta, estos elementos a su vez tienen una longitud |
| 79 | + de 3 conjuntos de 4 bytes. Los primeros 4 bytes son un checksum del texto de la cabecera, los siguientes |
| 80 | + son la posición del texto de la cabecera en la siguiente región, y el último conjunto es el índice del elemento |
| 81 | + al que pertenece. El orden en el que se van agregando elementos a esta zona se sigue investigando. |
| 82 | +
|
| 83 | + - Texto de las cabeceras |
| 84 | + Esta región funciona igual que la región de los Textos. La única diferencia es que almacena el texto de las |
| 85 | + cabeceras y no los valores que son strings. |