ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Las Barras Bravas


Enviado por   •  17 de Noviembre de 2011  •  2.848 Palabras (12 Páginas)  •  994 Visitas

Página 1 de 12

www.noseasfloja.com RAR version 3.80 - Technical information

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

THE ARCHIVE FORMAT DESCRIBED BELOW IS ONLY VALID FOR VERSIONS SINCE 1.50

==========================================================================

RAR archive file format

==========================================================================

Archive file consists of variable length blocks. The order of these

blocks may vary, but the first block must be a marker block followed by

an archive header block.

Each block begins with the following fields:

HEAD_CRC 2 bytes CRC of total block or block part

HEAD_TYPE 1 byte Block type

HEAD_FLAGS 2 bytes Block flags

HEAD_SIZE 2 bytes Block size

ADD_SIZE 4 bytes Optional field - added block size

Field ADD_SIZE present only if (HEAD_FLAGS & 0x8000) != 0

Total block size is HEAD_SIZE if (HEAD_FLAGS & 0x8000) == 0

and HEAD_SIZE+ADD_SIZE if the field ADD_SIZE is present - when

(HEAD_FLAGS & 0x8000) != 0.

In each block the followings bits in HEAD_FLAGS have the same meaning:

0x4000 - if set, older RAR versions will ignore the block

and remove it when the archive is updated.

if clear, the block is copied to the new archive

file when the archive is updated;

0x8000 - if set, ADD_SIZE field is present and the full block

size is HEAD_SIZE+ADD_SIZE.

Declared block types:

HEAD_TYPE=0x72 marker block

HEAD_TYPE=0x73 archive header

HEAD_TYPE=0x74 file header

HEAD_TYPE=0x75 old style comment header

HEAD_TYPE=0x76 old style authenticity information

HEAD_TYPE=0x77 old style subblock

HEAD_TYPE=0x78 old style recovery record

HEAD_TYPE=0x79 old style authenticity information

HEAD_TYPE=0x7a subblock

Comment block is actually used only within other blocks and doesn't

exist separately.

Archive processing is made in the following manner:

1. Read and check marker block

2. Read archive header

3. Read or skip HEAD_SIZE-sizeof(MAIN_HEAD) bytes

4. If end of archive encountered then terminate archive processing,

else read 7 bytes into fields HEAD_CRC, HEAD_TYPE, HEAD_FLAGS,

HEAD_SIZE.

5. Check HEAD_TYPE.

if HEAD_TYPE==0x74

read file header ( first 7 bytes already read )

read or skip HEAD_SIZE-sizeof(FILE_HEAD) bytes

if (HEAD_FLAGS & 0x100)

read or skip HIGH_PACK_SIZE*0x100000000+PACK_SIZE bytes

else

read or skip PACK_SIZE bytes

else

read corresponding HEAD_TYPE block:

read HEAD_SIZE-7 bytes

if (HEAD_FLAGS & 0x8000)

read ADD_SIZE bytes

6. go to 4.

==========================================================================

Block Formats

==========================================================================

Marker block ( MARK_HEAD )

HEAD_CRC Always 0x6152

2 bytes

HEAD_TYPE Header type: 0x72

1 byte

HEAD_FLAGS Always 0x1a21

2 bytes

HEAD_SIZE Block size = 0x0007

2 bytes

The marker block is actually considered as a fixed byte

sequence: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00

Archive header ( MAIN_HEAD )

HEAD_CRC CRC of fields HEAD_TYPE to RESERVED2

2 bytes

HEAD_TYPE Header type: 0x73

1 byte

HEAD_FLAGS Bit flags:

2 bytes

0x0001 - Volume attribute (archive volume)

0x0002 - Archive comment present

RAR 3.x uses the separate comment block

and

...

Descargar como (para miembros actualizados)  txt (9 Kb)  
Leer 11 páginas más »
Disponible sólo en Clubensayos.com