RAR

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Software: XAD)
 
(10 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
|formattype=electronic
 
|formattype=electronic
 
|subcat=Archiving
 
|subcat=Archiving
|extensions={{ext|rar}}, {{ext|r00}}, ...
+
|extensions={{ext|rar}}, {{ext|r00}}, {{ext|rev}}, ...
 
|mimetypes={{mimetype|application/vnd.rar}}, {{mimetype|application/x-rar-compressed}}
 
|mimetypes={{mimetype|application/vnd.rar}}, {{mimetype|application/x-rar-compressed}}
 +
|locfdd={{LoCFDD|fdd000450}}, others
 
|pronom={{PRONOM|x-fmt/264}}, {{PRONOM|fmt/411}}, {{PRONOM|fmt/613}}
 
|pronom={{PRONOM|x-fmt/264}}, {{PRONOM|fmt/411}}, {{PRONOM|fmt/613}}
 
|wikidata={{wikidata|Q243303}}
 
|wikidata={{wikidata|Q243303}}
Line 17: Line 18:
 
RAR can be considered to be a family of three main file formats:
 
RAR can be considered to be a family of three main file formats:
  
* The (obsolete) format used by RAR before v1.50
+
* The format used by RAR before v1.50. Largely obsolete. (1993)
* The format associated with RAR v1.50 through v4.x
+
* The format associated with RAR v1.50 through v4.xx. (1994)
* "RAR 5.0" format
+
* "RAR 5.0" format. (2013)
  
Even within one of these classes, there can be significant differences between different RAR versions.
+
The second of these format classes can be subdivided, based on the number that is usually written to the ''version needed to extract'' field:
 +
* version-needed='''1.5''': Created by v1.5x. (1994)
 +
* version-needed='''2.0''': Created by v2.xx. (1996)
 +
* version-needed='''2.9''': Created by v3.00-4.xx (or later, using an option). Can be decompressed by v2.90+. (2002)
  
 
=== Early history ===
 
=== Early history ===
Most of the earliest releases of RAR appear to be lost. Version 1.34 beta (1993-12-05) seems to be the oldest one known to still exist as of this writing, but there were likely about a dozen earlier releases, starting with v0.1 in 1993-03<ref>Discussion at [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=696]</ref>. Of those that can be found, the first non-beta release seems to be v1.51 (1994-06-17).
+
Some of the earliest versions of RAR appear to be lost. RAR v1.34 beta (1993-12-05) seems to be the oldest version known to still exist as of this writing. There were probably about a dozen earlier versions, starting with v0.1 in 1993-03<ref>Discussion at [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=696]</ref>, but it's not clear which of them were released publicly. Of those that can be found, the first non-beta release seems to be v1.51 (1994-06-17).
  
 
=== Overview of DOS releases ===
 
=== Overview of DOS releases ===
Line 30: Line 34:
  
 
== Self-extracting archives ==
 
== Self-extracting archives ==
RAR supports creating self-extacting archives. This is sometimes done simply by appending a RAR file to a pre-made "executable stub". Multiple stubs, or even customized stubs, may be available, so it's difficult to classify all of the RAR self-extracting archive formats. Distributions of RAR often include one or more stubs in files with an '''.SFX''' extension, though note that there may be additional stubs that are built into the software.
+
RAR supports creating self-extracting archives. This is sometimes done simply by appending a RAR file to a pre-made "executable stub". Multiple stubs, or even customized stubs, may be available, so it's difficult to classify all of the RAR self-extracting archive formats. Distributions of RAR often include one or more stubs in files with an '''.SFX''' extension, though note that there may be additional stubs that are built into the software.
  
 
For the 16-bit DOS stubs, the decompressor is [[MS-DOS EXE|EXE]]-based, and is pre-compressed with [[LZEXE]]. The ASCII signature "<code>RSFX</code>"  (instead of LZEXE's usual "<code>LZ91</code>") appears at offset 28.
 
For the 16-bit DOS stubs, the decompressor is [[MS-DOS EXE|EXE]]-based, and is pre-compressed with [[LZEXE]]. The ASCII signature "<code>RSFX</code>"  (instead of LZEXE's usual "<code>LZ91</code>") appears at offset 28.
Line 38: Line 42:
 
=== Installation SFX ===
 
=== Installation SFX ===
 
For at least RAR v1.54 through 2.50, an "installation SFX module" is available, in the included IDOS.SFX file. This stub features a script interpreter that processes a script stored in what would normally be the archive comment field. For an example RAR installation script, see the STANDARD.S file included with these versions.
 
For at least RAR v1.54 through 2.50, an "installation SFX module" is available, in the included IDOS.SFX file. This stub features a script interpreter that processes a script stored in what would normally be the archive comment field. For an example RAR installation script, see the STANDARD.S file included with these versions.
 +
 +
== Recovery record ==
 +
Starting with v2.0, RAR supported the addition of up to 1-10% recovery data into the archive. This works similar to [[Parity Volume Set|par2]] and lets it repair small amounts of data corruption. V5 greatly improved the capability and allowed >100% recovery data
 +
 +
== Recovery volumes ==
 +
Starting with v3.0, RAR supported the creation of .rev recovery volumes. They are similar to .par files in that each .rev file will allow the replacement of any missing part of a multi-volume set. They have the advantage of being the exact same size as the volume parts, whereas .par files are slightly larger (This is no longer true with the v5 format). An example 3 volume set with 2 recovery volumes would look like file.part1.rar, file.part2.rar, file.part3.rar, file.part1.rev, file.part2.rev and would be able to successfully recover from losing any 2 files.
  
 
== File identification ==
 
== File identification ==
Line 47: Line 57:
  
 
== Specifications ==
 
== Specifications ==
 +
Most distributions of RAR through v2.50, and WinRAR through v4.xx, include a "TechNote" document describing the file structure of the relevant RAR format. For more details, including compression formats, you may have to refer to the UnRAR source code.
 +
 +
The RAR 5.0 version of the TechNote document seems to only be available online. It is not clearly versioned, though it has had at least some small changes over time.<ref>For example, the "Unix time format with nanosecond precision" feature appeared around June 2019.</ref>
 +
 +
(Note that some of these files are self-extracting RAR archives, which can be opened by WinRAR, [[7-Zip]], etc.)
 +
 
Before v1.50:
 
Before v1.50:
* {{CdTextfiles|simtel/simtel/DISK1/DISC2/ARCHIVER/RAR140DC.EXE|RAR140DC.EXE}} (self-extracting RAR archive) → technote.doc
+
* {{CdTextfiles|nfbfiles/compress/RAR1_402.EXE|RAR1_402.EXE}} → TECHNOTE.DOC (Russian)
 +
** {{CdTextfiles|simtel/simtel/DISK1/DISC2/ARCHIVER/RAR140DC.EXE|RAR140DC.EXE}} → technote.doc - English translation
  
 
v1.50-4.20:
 
v1.50-4.20:
* [{{SACFTPURL|pack|wrar420.exe}} wrar420.exe] (self-extracting RAR archive) → TechNote.txt
+
* {{CdTextfiles|simtel/simtel9510/disk2/DISC2/ARCHIVER/RAR155.EXE|RAR155.EXE}} → TECHNOTE.DOC
 +
* wrar290.exe ([https://www.os2site.com/sw/util/archiver/rar/index.html], [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=781], etc.) → TechNote.txt
 +
* [{{SACFTPURL|pack|wrar420.exe}} wrar420.exe] → TechNote.txt
  
 
5.0 format:
 
5.0 format:
* [https://www.rarlab.com/technote.htm RAR 5.0 archive format]
+
* [https://www.rarlab.com/technote.htm RAR 5.0 archive format] - Latest version
 +
* [https://web.archive.org/web/20130101000000*/https://www.rarlab.com/technote.htm Archived copies at archive.org]
  
 
Various:
 
Various:
* [https://forensicswiki.xyz/wiki/index.php?title=RAR Forensics Wiki article]
+
* [{{ForensicsWikiURL|rar}} Forensics Wiki article]
  
 
== Software ==
 
== Software ==
* [https://www.rarlab.com/ WinRAR website]
+
* [https://www.rarlab.com/ RARLAB/WinRAR website]
** [https://www.rarlab.com/rar/UnRARDLL.exe Free UnRAR.dll]
+
** [https://www.rarlab.com/download.htm WinRAR and RAR downloads]
** [https://www.rarlab.com/rar/unrarsrc-4.2.4.tar.gz UnRAR source]
+
** [https://www.rarlab.com/rar_add.htm Extras] : Other RAR-related items
 +
* [ftp://ftp.rarlab.com/rar/ RARLAB FTP site]
 +
** [https://archive.org/details/ftp.rarlab.com-201505 Archive of FTP site (2015-05)]
 
* [[Konvertor]]
 
* [[Konvertor]]
 
* [[7-Zip]]
 
* [[7-Zip]]
* [[The Unarchiver]]
+
* {{XAD}} [[The Unarchiver]]
 
* [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=696 RAR: Various versions, at old-dos.ru]
 
* [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=696 RAR: Various versions, at old-dos.ru]
 
* [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=781 WinRAR: Various versions, at old-dos.ru]
 
* [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=781 WinRAR: Various versions, at old-dos.ru]
 
* [https://www.sac.sk/files.php?d=7 SAC archive, PACK section] - Has lots of RAR software, but no easy way to get a list of it.
 
* [https://www.sac.sk/files.php?d=7 SAC archive, PACK section] - Has lots of RAR software, but no easy way to get a list of it.
* {{CdTextfiles|nfbfiles/compress/RAR1_402.EXE|RAR 1.40.2 beta (DOS)}}
+
* RAR for DOS, selected versions:
* {{CdTextfiles|simtel/simtel9510/disk2/DISC2/ARCHIVER/RAR155.EXE|RAR 1.55 (DOS)}}
+
** {{CdTextfiles|nfbfiles/compress/RAR1_402.EXE|RAR 1.40.2 beta}}
* [{{SACFTPURL|pack|rar250.exe}} RAR 2.50 (DOS)]
+
** {{CdTextfiles|simtel/simtel9510/disk2/DISC2/ARCHIVER/RAR155.EXE|RAR 1.55}}
* [{{SACFTPURL|pack|rarx393.exe}} RAR 3.93 (DOS, OS/2)]
+
** {{CdTextfiles|simtel/simtel9703/disk2/DISC2/ARCERS/RAR200.EXE|RAR 2.00}}
 +
** [{{SACFTPURL|pack|rar250.exe}} RAR 2.50]
 +
** [{{SACFTPURL|pack|rarx393.exe}} RAR 3.93 (DOS, OS/2)]
 +
* UnRAR source code
 +
** [https://www.rarlab.com/rar_add.htm Extras] → "UnRAR source" - Latest version
 +
** See the RARLAB FTP site, for versions back to 3.1.0.
 +
** [https://github.com/pmachapman/unrar A GitHub project tracking UnRAR]
 +
** {{CdTextfiles|simtel/simtel9510/disk2/DISC2/ARCHIVER/RAR155.EXE|RAR155.EXE}} → UNRAR105.EXE → UNRARS10.RAR - (v1.01) Supports RAR v1.5x format. For a bug fix, see v2.00's "WHATSNEW.DOC" file.
  
 
== Sample files ==
 
== Sample files ==
 
* {{CdTextfilesURL|ataricompendium/FILES/MISC/PRTFOLIO/}}
 
* {{CdTextfilesURL|ataricompendium/FILES/MISC/PRTFOLIO/}}
 
* {{CdTextfilesURL|thebbsorg/max_files/}}
 
* {{CdTextfilesURL|thebbsorg/max_files/}}
* https://telparia.com/fileFormatSamples/archive/rar/ → *.rar
+
* {{DexvertSamples|archive/rar}}
  
 
== Links ==
 
== Links ==
 
* [[Wikipedia:RAR (file format)|Wikipedia article]]
 
* [[Wikipedia:RAR (file format)|Wikipedia article]]
 +
* [https://www.rarlab.com/ RARLAB/WinRAR website]
 
* [https://imgur.com/a/MtQZv#0 Mini RAR poster]
 
* [https://imgur.com/a/MtQZv#0 Mini RAR poster]
 
* [http://rescene.wikidot.com/rar-versions ReScene's list of RAR versions]
 
* [http://rescene.wikidot.com/rar-versions ReScene's list of RAR versions]

Latest revision as of 10:55, 12 April 2024

File Format
Name RAR
Ontology
Extension(s) .rar, .r00, .rev, ...
MIME Type(s) application/vnd.rar, application/x-rar-compressed
LoCFDD fdd000450, others
PRONOM x-fmt/264, fmt/411, fmt/613
Wikidata ID Q243303
Kaitai Struct Spec rar.ksy
Released 1993

RAR (Roshal Archive) is a compressed archive format used by the compression software RAR and WinRAR. It was originally for DOS, but has been widely used on Windows (as WinRAR) and other platforms.

The developers make the decompression code available for use in other programs and allow its distribution, but with a license provision that "You cannot use the unrar source to re-create the RAR compression algorithm, which is proprietary."

Contents

[edit] Discussion

[edit] Format classification

RAR can be considered to be a family of three main file formats:

  • The format used by RAR before v1.50. Largely obsolete. (1993)
  • The format associated with RAR v1.50 through v4.xx. (1994)
  • "RAR 5.0" format. (2013)

The second of these format classes can be subdivided, based on the number that is usually written to the version needed to extract field:

  • version-needed=1.5: Created by v1.5x. (1994)
  • version-needed=2.0: Created by v2.xx. (1996)
  • version-needed=2.9: Created by v3.00-4.xx (or later, using an option). Can be decompressed by v2.90+. (2002)

[edit] Early history

Some of the earliest versions of RAR appear to be lost. RAR v1.34 beta (1993-12-05) seems to be the oldest version known to still exist as of this writing. There were probably about a dozen earlier versions, starting with v0.1 in 1993-03[1], but it's not clear which of them were released publicly. Of those that can be found, the first non-beta release seems to be v1.51 (1994-06-17).

[edit] Overview of DOS releases

RAR v2.50 (1999-03-24) was the last one for traditional 16-bit DOS. After that came versions 2.60 through 3.93, which use a 32-bit DOS extender. These versions are sometimes called "RAR32", though their actual name is still "RAR".

[edit] Self-extracting archives

RAR supports creating self-extracting archives. This is sometimes done simply by appending a RAR file to a pre-made "executable stub". Multiple stubs, or even customized stubs, may be available, so it's difficult to classify all of the RAR self-extracting archive formats. Distributions of RAR often include one or more stubs in files with an .SFX extension, though note that there may be additional stubs that are built into the software.

For the 16-bit DOS stubs, the decompressor is EXE-based, and is pre-compressed with LZEXE. The ASCII signature "RSFX" (instead of LZEXE's usual "LZ91") appears at offset 28.

While "RSFX" is indicative of a RAR self-extracting archive, it is not unique to the LZEXE-based formats, and it does not appear in all EXE-based RAR self-extracting archives.

[edit] Installation SFX

For at least RAR v1.54 through 2.50, an "installation SFX module" is available, in the included IDOS.SFX file. This stub features a script interpreter that processes a script stored in what would normally be the archive comment field. For an example RAR installation script, see the STANDARD.S file included with these versions.

[edit] Recovery record

Starting with v2.0, RAR supported the addition of up to 1-10% recovery data into the archive. This works similar to par2 and lets it repair small amounts of data corruption. V5 greatly improved the capability and allowed >100% recovery data

[edit] Recovery volumes

Starting with v3.0, RAR supported the creation of .rev recovery volumes. They are similar to .par files in that each .rev file will allow the replacement of any missing part of a multi-volume set. They have the advantage of being the exact same size as the volume parts, whereas .par files are slightly larger (This is no longer true with the v5 format). An example 3 volume set with 2 recovery volumes would look like file.part1.rar, file.part2.rar, file.part3.rar, file.part1.rev, file.part2.rev and would be able to successfully recover from losing any 2 files.

[edit] File identification

RAR files made by versions prior to v1.50 start with bytes 52 45 7e 5e.

RAR files associated with versions 1.50 through 4.20 start with 7 signature bytes: 52 61 72 21 1a 07 00.

"RAR 5.0" format starts with 8 signature bytes: 52 61 72 21 1a 07 01 00.

[edit] Specifications

Most distributions of RAR through v2.50, and WinRAR through v4.xx, include a "TechNote" document describing the file structure of the relevant RAR format. For more details, including compression formats, you may have to refer to the UnRAR source code.

The RAR 5.0 version of the TechNote document seems to only be available online. It is not clearly versioned, though it has had at least some small changes over time.[2]

(Note that some of these files are self-extracting RAR archives, which can be opened by WinRAR, 7-Zip, etc.)

Before v1.50:

v1.50-4.20:

5.0 format:

Various:

[edit] Software

[edit] Sample files

[edit] Links

[edit] References

  1. Discussion at [1]
  2. For example, the "Unix time format with nanosecond precision" feature appeared around June 2019.
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox