radare2/shlr/rar/README

46 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Each block:
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 & 0×8000) != 0
Blocksize:
if (HEAD_FLAGS & 0×8000) == 0 && HEAD_SIZE+ADD_SIZE
if the field ADD_SIZE is present when
(HEAD_FLAGS & 0×8000) != 0.
Types of blocks
HEAD_TYPE=0×72 marker block # first block
The marker block is actually considered as a fixed byte
sequence: 0×52 0×61 0×72 0×21 0x1a 0×07 0×00
HEAD_TYPE=0×73 archive header
HEAD_TYPE=0×74 file header
HEAD_TYPE=0×75 old style comment header
HEAD_TYPE=0×76 old style authenticity information
HEAD_TYPE=0×77 old style subblock
HEAD_TYPE=0×78 old style recovery record
HEAD_TYPE=0×79 old style authenticity information
HEAD_TYPE=0x7a subblock
HEAD_FLAGS:
0×0001 Volume attribute (archive volume)
0×0002 Has comment (v3 uses the separate comment block and does not use this)
0×0004 Archive lock attribute
0×0008 Solid attribute (solid archive)
0×0010 New volume naming scheme (volname.partN.rar)
0×0020 Authenticity information present RAR 3.x does not set this flag.
0×0040 Recovery record present
0×0080 Block headers are encrypted
0×0100 First volume (set only by RAR 3.0 and later)
0×4000 if set, older RAR versions will ignore the block
0x8000 - if set, ADD_SIZE is present and bs = HEAD_SIZE + ADD_SIZE