# WinRAR

WinRAR is a trialware file archiver utility, developed by Eugene Roshal of win.rar GmbH. It can create and view archives in RAR or ZIP file formats, and unpack numerous archive file formats. To enable the user to test the integrity of archives, WinRAR embeds CRC32 or BLAKE2 checksums for each file in each archive. WinRAR supports creating encrypted, multi-part and self-extracting archives. WinRAR is a Windows-only program. An Android application called "RAR for Android" is also available. Related programs include the command-line utilities "RAR" and "UNRAR" and versions for macOS, Linux, FreeBSD, WinCE, and MS-DOS.

## Evolution

RAR/DOS started as a mix of x86 assembler and C, with the amount of assembly code decreasing over time and moving to pure C/C++ later on. The first versions of WinRAR were written in C, modern versions are using C++. RAR for Android is written as a mixture of Java and C++.
WinRAR and the RAR file format have evolved over time. Support for the archive format RAR5, using the same RAR file extension as earlier versions, was added in version 5.0; the older RAR file format has since been referred to as RAR4. WinRAR versions before 5.0 do not support RAR5 archives; only older versions of WinRAR run on older operating systems, and cannot open RAR5 archives.
The RAR5 file format - from version 7 on, referred to as "RAR" - increased the maximum dictionary size up to 64 GB, depending on the amount of available memory, with the default in version 5 increased from 4 MB to 32 MB, typically improving compression ratio. For dictionaries larger than 4 GB, the size can be specified if it is unequal to a power of 2. Thus, there are no restrictions to the range 4, 8, 16, 32, 64, allowing 5 GB or 22 GB to be chosen at will. Archives with dictionaries larger than 4 GB can only be extracted by WinRAR 7.0 or newer. AES encryption, when used, is in CBC mode and was increased in strength from 128- to 256-bit. Maximum path length for files in RAR and ZIP archives is increased from 2047 to 65535 characters.
Options added in v5.0 include 256-bit BLAKE2 file-hashing algorithm instead of default 32-bit CRC32, duplicate file detection, NTFS hard and symbolic links, and Quick Open record to allow large archives to be opened faster.
The RAR5 file format removed comments for each file (though archive comment still remains), authenticity verification, and specialized compression algorithms for text and multimedia files. RAR5 also changed the file name for split volumes from "archivename.rNN" to "archivename.partNN.rar".
The RAR7 file format added support for 64GB compression dictionary and improved compression ratio by adding two extra algorithms. RAR7 archives with dictionary sizes up to 4GB can be unpacked by previous versions of WinRAR (5.0 and above) given there's enough RAM.

## Features

* Creation of packed RAR or ZIP archives.
* Unpacking of ARJ, BZIP2, CAB, GZ, ISO, JAR, LHA, RAR, TAR, UUE, XZ, Z, ZIP, ZIPX, ZST, 7z, UUE 001 (split) archives, as well as EXE files containing these archive formats
* Checksum (integrity) verification for ARJ, BZIP2, CAB, GZ, BZIP2, RAR, XZ, ZIP and 7z archives
* Multithreaded CPU compression and decompression
When creating RAR 7.0 archives:
* Support for maximum file size of 16 EiB, about 1.8 × 10$^{19}$ bytes or 18 million TB
* Compression dictionary from 1 MiB to 64 GiB (it is limited to 256 MiB on 32-bit editions, although 32-bit editions still can decompress archives with 1 GiB dictionary; default size is 32 MiB)
* Optional 256-bit BLAKE2 file hashing that can replace the default 32-bit CRC32 file checksum
* Optional encryption using AES with a 256-bit key in CBC mode, using key derivation function based on PBKDF2 using HMAC-SHA256
* Optional data redundancy is provided in the form of Reed–Solomon recovery records and recovery volumes, allowing reconstruction of damaged archives (including reconstruction of entirely missed volumes)
* Optional "quick open record" to open RAR files faster
* Ability to create multi-volume (split) archives
* Ability to create self-extracting files (multi-volume self-extracting archives are supported; the self-extractor can execute commands, such as running a specified program before or after self-extraction)
* Support for NTFS permissions, hard and symbolic links
* Support for maximum path length up to 65,535 characters (stored in the UTF-8 format)
* Optional archive comment (stored in the UTF-8 format)
* Optional file timestamps preservation: modification, creation, last access times with high precision
* Optional file deduplication
* Advanced backup options, time-stamped files and previous file version retention.

## License

The software is distributed as "try before you buy"; it may be used without charge for 40 days. When the period expires, the non-enterprise functionalities remain available, a move intended to discourage piracy. In China, a free-to-use personal edition has been provided officially since 2015.
Although archiving with the RAR format is proprietary, RARLAB supplies as copyrighted freeware the C++ source code of the current UnRAR unpacker, with a license allowing it to be used in any software, thus enabling others to produce software capable of unpacking, but not creating, RAR archives.
RAR for Android is free of charge. It displays advertisements; for a payment they can be disabled. A license for WinRAR does not provide ad-suppression for RAR for Android.

## Security

In February 2019, a major security vulnerability in the unacev2.dll library which is used by WinRAR to decompress ACE archives was discovered. Consequently, WinRAR dropped the support for the ACE format from version 5.70.
Self-extracting archives created with versions before 5.31 (including the executable installer of WinRAR itself) are vulnerable to DLL hijacking: they may load and use DLLs named UXTheme.dll, RichEd32.dll and RichEd20.dll if they are in the same folder as the executable file.
It was widely reported that WinRAR v5.21 and earlier had a remote code execution (RCE) vulnerability which could allow a remote attacker to insert malicious code into a self-extracting executable (SFX) file being created by a user, "putting over 500 million users of the software at risk". However, examination of the claim revealed that, while the vulnerability existed, the result was merely an SFX which delivered its payload when executed; published responses dismissed the threat, one saying "If you can find suckers who will trust a .exe labelled as self-extracting archive ... then you can trick them into running your smuggled JavaScript".
WinRAR 6.23 fixes a critical security vulnerability which allowed the hacker to automatically execute malware distributed in archives under some circumstances.

## History
### Versions

* Command line RAR and UNRAR were first released in autumn 1993.
* Early development version WinRAR 1.54b was released in 1995.
* 3.00 (2002–05): the new RAR3 archive format is implemented. The new archives cannot be managed by older versions of WinRAR. Solid compression and WAV audio lossless compression features are added.
* 3.41 (2004–12): adds support for Linux .Z archives like GZIP and BZIP2. New options include storing entire file paths and restoring compressed NTFS files.
* 3.50 (2005–08): adds support for interface skins.
* 3.60 (2006–08): adds multithreaded version of the compression algorithm, which improves compression speed on systems with multiple dual-core or hyper-threading-enabled CPUs.
* 3.80 (2008–09): adds support for ZIP archives, which contain Unicode file names in UTF-8.
* 3.90 (2009-05): adds support for the x86-64 architecture. Multithreaded support is enhanced.
* 3.91 is the last release that supports Valencian.
* 3.92 is the last release that supports Serbian Cyrillic and Serbian Latin.
* 4.00 (2011-03): decompression is sped up by up to 30%.
* 4.10 (2012-01): removes all ZIP limitations now allowing unlimited number of files and archive size. WinRAR now also allows creation of multivolume ZIP files. ZIP archives now include Unicode file names.
* 4.20 (2012-06): compression speed in SMP mode is increased significantly, but this improvement was made at the expense of increased memory usage. ZIP compression now uses SMP as well. The default SMP mode cannot handle text; text compression is significantly worse unless additional switches are used.
* 5.00 (2013-09): the RAR5 archive format is implemented. RAR5 compressed archives cannot be managed by old versions of WinRAR. The RAR 5 format improves multi-core processor utilization, and adds a larger dictionary size of up to 1 GiB with 64-bit WinRAR. Special optional compression algorithms optimized for RGB bitmaps, raw audio files, Itanium executables, and plain text, which were supported by earlier versions, are supported only in the older RAR format, not RAR5. Optional optimized compression of x86 executables and delta compression (for structured table data) are supported in both file formats.
* 5.50 (2017-08): adds support for a master password which can be used to encrypt passwords stored in WinRAR. The default RAR format is changed to version 5. Adds support for decompressing Lzip archives; adds support for high precision file dates, longer file names and larger file sizes for TAR archives.
* 5.60 (2018-06): repairing of protected RAR5 archives was improved. Automatic detection of the encoding of ZIP archive comments. Recognition of GZIP files with arbitrary preceding data as an actual GZIP archive.
* 5.70 (2019-02): removes support for ACE archive decompression due to major security vulnerabilities in the unacev2.dll library.
* 6.00 (2020-12): "Ignore" and "Ignore All" options are added to read error prompt. "Ignore" allows to continue processing with already read file part only and "Ignore All" does it for all future read errors.
* 6.10 (2022-01): Added support for unpacking ZST archives. Maximum recovery record is increased to 1000% of protected data size.
* 6.11 (2022-03): Support of Gzip archives with large archive comments has been added; In command line mode, the switch -mes can also be used to suppress the password prompt and abort when adding new files to an encrypted solid archive.
* 6.12 (2022-05): CVE-2022-30333 security vulnerability is fixed in Unix RAR versions. WinRAR and Android RAR are not affected.
* 6.23 (2023-08): CVE-2023-40477 and CVE-2023-38831 critical security vulnerabilities are fixed in WinRAR. Unix and Android versions are not affected.
* 6.24 (2023-10): Fixes an issue with null pointers.
* 7.00 (2024-02): drops support for creating RAR 4.x format archives. Maximum path length limit increased to 65535 characters. Maximum RAR dictionary size up to 64 GB for the 64-bit version (limited by available RAM). Command line RAR filters out control character 27 from screen output for security reasons.
* 7.10 (2025-02): drops support for 32bit Windows editions. Adds support for Large Memory Pages which increases compression and decompression speed specially when using a large compression dictionary. Adds dark mode.

### Operating systems support

More recent versions do not support many older operating systems. Versions supporting older operating systems may still be available, but not maintained:
* RAR 2.50 is the last version to support MS-DOS and OS/2 on 16-bit x86 CPUs (8086-compatible).
* RAR 3.93 is the last version to support MS-DOS and OS/2 on IA-32 CPUs (80386 equivalents and later). RAR for Pocket PC 3.93 is the last version for Windows Mobile. It supports file names longer than the MS-DOS standard of 8.3 characters, in a MS-DOS box (except under NT-based operating systems), and uses the RSX DPMI extender.
* WinRAR 2.06 is the last version to support Windows 3.1, Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 and Win32s.
* WinRAR 3.93 is the last version to support Windows 95, Windows NT 4.0, Windows 98 and Windows Me.
* WinRAR 4.11 is the last version to support Windows 2000.
* WinRAR 6.02 is the last version to support Windows XP (except the console version Rar.exe).
* WinRAR 7.01 is the last version to support Windows Vista (and 32-bit Windows editions).