-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproperties.txt
More file actions
85 lines (72 loc) · 4.9 KB
/
properties.txt
File metadata and controls
85 lines (72 loc) · 4.9 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
El archivo está en little endian
Se separa de 4 en 4 bytes
Identificadores:
0 - null
1 - Booleano
2 - Entero
3 - Flotante
4 - Lista
5 - Cadena de texto
6 - Objeto
Un conjunto de 4 bytes antes del inicio de la región de textos indica la longitud de caracteres
de la región.
-- Información específica
Estructuras:
0 - null
Identificador - 00 00 00 00
Valor - 00 00 00 00
Empty - 00 00 00 00
1 - Booleano
Identificador - 01 00 00 00
Valor - (01 00 00 00) ó (00 00 00 00) True or False respectivamente
Espacio vacío - 4 bytes nulos
2 - Entero
Identificador - 02 00 00 00
Valor - 4 bytes signed integrer little endian
Espacio vacío - 4 bytes nulos
3 - Flotante
Identificador - 03 00 00 00
Valor - 4 bytes número en formato de 32 bits de punto flotante little endian
Espacio vacío - 4 bytes nulos
4 - Lista
Identificador - 04 00 00 00
Longitud en objetos - 4 bytes unsigned integrer little endian
Longitud final - 4 bytes que representan la suma de todos los elementos
internos de aquellos elementos que se hayan cerrado
antes que este y que sean del mismo tipo.
5 - Cadena de texto:
Identificador - 05 00 00 00
Hash - 4 bytes little endian
Posición del texto en región de textos - 4 bytes unsigned integrer little endian
6 - Objeto
Identificador - 06 00 00 00
Longitud en objetos - 4 bytes unsigned integrer little endian
Longitud final - 4 bytes que representan la suma de todos los elementos
internos de aquellos elementos que se hayan cerrado
antes que este y que sean del mismo tipo.
Regiones:
- Estructura
En esta región se encuentran almacenados todos los elementos que existen en el archivo con su tipo
y estructura respectivamente, así como datos simples, sin incluir los textos pero si sus posiciones
en la siguiente región. Inicia indicando la longitud en elementos que contiene la región, cada elemento
se conforma por 3 conjuntos de 4 bytes. El primero será el identificador de qué tipo de dato es, el siguiente
suele ser su valor, y el tercero solo se usa en tipos de datos object, array y strings.
- Textos
Los textos usados por los elementos declarados como textos se ecnuentran almacenados en esta región.
Inicia declarando con 4 bytes en little endian el largo en bytes de toda la región, seguido de todos
los textos juntos, cada uno terminado con un byte nulo.
- Objetos sin cabeceras
Esta región indica aquellos elementos que no incluyen cabeceras, se usa para aquellos elementos que
se encuentran dentro de una lista. Inicia indicando la longitud de elementos de la región, seguido del
índice de aquel elemento que no tiene cabecera. Cada indicador se representa igualmente con 4 bytes en
little endian. Se van agregando conforme las listas se vayan cerrando. Los elementos de la lista a su
vez se agregan en orden normal.
- Posiciones de cabeceras
Aquí es donde se encuentra la información de cada cabecera y el índice del elemento al que pertenece. Inicia
con 4 bytes indicando la cantidad de elementos con los que cuenta, estos elementos a su vez tienen una longitud
de 3 conjuntos de 4 bytes. Los primeros 4 bytes son un checksum del texto de la cabecera, los siguientes
son la posición del texto de la cabecera en la siguiente región, y el último conjunto es el índice del elemento
al que pertenece. El orden en el que se van agregando elementos a esta zona se sigue investigando.
- Texto de las cabeceras
Esta región funciona igual que la región de los Textos. La única diferencia es que almacena el texto de las
cabeceras y no los valores que son strings.