Formato ZIP
Por: The Inspector
La estructura del formato
zip se encuentra presente en muchos tipos de archivo como .docx,
.xlsx, .odt, ods, entre otros y básicamente su estructura es la
siguiente.
-Datos comprimidos
-Directorio central
-Descripcion del
Directorio Central
La sección de datos
comprimidos se construye a partir de dos elementos que son
-Cabecera del archivo
-Datos de archivo
Estos elementos se
repiten por cada archivo que se agrege al archivo comprimido.
Luego se agrega un
elemento llamado Directorio Central donde se listan los archivos que
se encuentran agregados y esta es la estructura utilizada por los
programas que manejan este tipo de archivos para mostrar un listado
de los archivos que se encuentran dentro.
Existe un tercer elemento
llamado descripción del indice y a pesar de que este contiene una
descripción del elemento anterior no siempre es utilizado por
programas populares como el visor de archivos comprimidos de windows
o el programa winrar y si por el programa de compresión 7-zip.
Descripcion de los
elementos principales de un archivo comprimido.
Cabecera de archivo
Corresponden a mas de
30bytes por cada archivo agregado en el comprimido y digo mas porque
existen unos campos de longitud variable.
Nombre del campo
|
Tamaño
|
firma de cabecera del archivo local (0x504B0304)
|
4bytes
|
version
|
2bytes
|
bit bandera de proposito general
|
2bytes
|
metodo de compresion
|
2bytes
|
hora ultima modificación del archivo
|
2bytes
|
fecha ultima modificación del archivo
|
2bytes
|
crc-32
|
4bytes
|
tamaño de archivo comprimido
|
4bytes
|
tamaño de archivo descomprimido
|
4bytes
|
tamaño del nombre del archivo
|
2bytes
|
campo para longitud extra del nombre
|
2bytes
|
nombre del archivo
|
variable
|
campo extra
|
|
Datos de Archivo
|
variable
|
Directorio Central
Corresponden a mas de
46bytes POR CADA ARCHIVO agregado en el comprimido y digo mas porque
existen unos campos de longitud variable.
Nombre del campo
|
Tamaño
|
firma de cabecera del archivo local (0x504B0102)
|
4bytes
|
version
|
2bytes
|
version necesaria para extracion
|
2bytes
|
bit bandera de proposito general
|
2bytes
|
metodo de compresion
|
2bytes
|
hora ultima modificación del archivo
|
2bytes
|
fecha ultima modificación del archivo
|
2bytes
|
crc-32
|
4bytes
|
tamaño de archivo comprimido
|
4bytes
|
tamaño de archivo descomprimido
|
4bytes
|
tamaño del nombre del archivo
|
2bytes
|
campo de longitud extra
|
2bytes
|
longitud de comentario
|
2bytes
|
longitud extra del comentario
|
2bytes
|
No de partes de este archivo
|
2bytes
|
Atributo interno del archivo
|
2bytes
|
Atributo externo del archivo
|
4bytes
|
Offset de cabecera local
|
4bytes
|
nombre del archivo
|
variable
|
campo extra
|
variable
|
comentario
|
variable
|
Descripción del indice
Corresponden a los
últimos 22bytes que oficialmente conforman la estructura de un
archivo comprimido y contiene como su nombre lo indica una
descripcion de la tabla del directorio central.
Nombre del campo
|
Tamaño
|
firma de cabecera del archivo local (0x504B0506)
|
4bytes
|
numero de partes totales del archivo
|
2bytes
|
numero de parte de archivo
|
2bytes
|
numero de entradas totales
|
2bytes
|
numero de entradas en este archivo
|
2bytes
|
tamaño del directorio central
|
4bytes
|
offset entre inicio de archivo y central
directory
|
2bytes
|
En resumen estas son las
cabeceras que podemos encontrar dentro de un archivo .ZIP y que son
mas identificables.
Cabecera por cada archivo
agregado al zip
0x504B0304
Cabecera por cada archivo
en el directorio central
0x504B0102
Cabecera del indice de
directorio
0x504B0506
No hay comentarios.:
Publicar un comentario