Исходный код WinRAR: что открыто, что закрыто и как использовать

Поиск исходного кода WinRAR обычно приводит к неожиданному результату: полный исходный код самого архиватора закрыт, но разработчик — компания RARLAB (Евгений Рошал) — публикует исходники библиотеки UnRAR, предназначенной для распаковки архивов формата RAR. Именно этот код лежит в основе большинства сторонних программ, умеющих извлекать файлы из .rar-архивов.

Путаница возникает из-за того, что запрос «исходный код WinRAR» объединяет сразу несколько разных вещей: исходники интерфейса программы, алгоритм сжатия RAR, библиотеку распаковки и формат самого архива. Разберём каждый вариант отдельно, чтобы вы понимали, что реально доступно, на каких условиях и что с этим кодом можно делать.

Что такое WinRAR и почему его код закрыт

WinRAR — коммерческий архиватор для Windows, распространяемый по модели shareware: программой можно пользоваться бесплатно с напоминанием о покупке, но лицензия формально платная. Исходный код приложения, включая алгоритм сжатия RAR, является интеллектуальной собственностью разработчика и нигде публично не публикуется. Это осознанное решение: формат RAR — ключевой коммерческий актив проекта.

Алгоритм сжатия RAR закрыт не только юридически, но и практически: создать RAR-архив могут только официальные инструменты — WinRAR и консольная утилита RAR для разных платформ. Сторонние программы (например, 7-Zip) умеют лишь распаковывать RAR, но не создавать такие архивы — именно потому, что кодировщик никому не лицензируется.

UnRAR — официально открытая часть

Единственный официальный открытый компонент — UnRAR. Это библиотека и консольная утилита для извлечения данных из архивов RAR, исходный код которой RARLAB распространяет бесплатно. На её основе работают функции распаковки RAR в 7-Zip, PeaZip, файловых менеджерах и многих других проектах.

Исходники UnRAR написаны на C++ и включают декомпрессор, парсер структуры архива, обработку томов (многотомных архивов) и поддержку шифрованных архивов. Код переносимый: его собирают под Windows, Linux, macOS и другие системы.

  • 📦 Распаковка RAR — основная и единственная функция библиотеки;
  • 🔓 Шифрованные архивы — поддерживается извлечение при известном пароле;
  • 🧩 Многотомные архивы — обработка последовательностей вида part1.rar, part2.rar;
  • 🚫 Создание архивов — в UnRAR отсутствует, это принципиальное ограничение лицензии.
📊 Зачем вам нужен исходный код WinRAR/UnRAR?
Добавить распаковку RAR в свою программу
Изучить алгоритмы сжатия
Проверить архиватор на уязвимости
Просто любопытно

Условия лицензии UnRAR

Лицензия UnRAR — не классическая open-source лицензия вроде GPL или MIT, а отдельный текст с важным ограничением. Код можно свободно использовать, изучать и встраивать в свои продукты, включая коммерческие, но запрещено использовать исходники UnRAR для создания компрессора, совместимого с форматом RAR. Иными словами, распаковщик делать можно, упаковщик — нельзя.

Ещё одно условие: при использовании кода нужно указать в документации или разделе «О программе», что применяется технология UnRAR от RARLAB. Точный актуальный текст лицензии всегда проверяйте в файле license.txt, который поставляется вместе с исходниками, — формулировки могут уточняться от версии к версии.

⚠️ Внимание: использование исходников UnRAR для реверс-инжиниринга алгоритма сжатия и создания собственного RAR-упаковщика нарушает лицензионное соглашение, даже если технически это выполнимо.

Где скачать исходники и как их собрать

Официальный источник исходного кода UnRAR — сайт разработчика rarlab.com, раздел с дистрибутивами. Там публикуется архив вида unrarsrc-версия.tar.gz, содержащий полное дерево исходников. Скачивать код стоит только с официального сайта: сторонние «сборники исходников WinRAR» нередко содержат вредоносные вставки или вовсе не имеют отношения к оригиналу.

☑️ Проверка перед использованием исходников UnRAR

Выполнено: 0 / 5

Сборка под Linux обычно выполняется прилагаемым makefile:

tar -xzf unrarsrc-*.tar.gz

cd unrar

make

В результате получается исполняемый файл unrar и статическая библиотека, которую можно слинковать со своим проектом. Под Windows исходники собираются в Microsoft Visual Studio — в комплекте есть проектные файлы. Если сборка завершается ошибками, первым делом проверьте версию компилятора: свежие исходники могут требовать поддержки современных стандартов C++.

Альтернативы с полностью открытым кодом

Если цель — изучение алгоритмов сжатия или встраивание архивации в проект без лицензионных ограничений, стоит посмотреть на полностью открытые форматы. Они свободны и для распаковки, и для создания архивов.

ПроектЛицензияСоздание архивовОсобенности
7-Zip (7z)GNU LGPLДаВысокая степень сжатия, открытый формат
zlibzlibДаСтандарт де-факто для deflate-потоков
zstd (Zstandard)BSD / GPLv2ДаБыстрое сжатие, разработка Meta
UnRARСобственнаяНетТолько распаковка RAR
brotliMITДаОптимизирован для веб-контента

Выбор зависит от задачи. Для внутреннего формата данных в своём приложении логичнее взять zstd или 7z: у них нет ограничений на создание архивов, а сообщество и документация шире. UnRAR оправдан, когда нужна именно совместимость с существующими RAR-архивами пользователей.

Безопасность и типичные заблуждения

Вокруг темы «исходный код WinRAR» ходит несколько устойчивых мифов. Первый — будто в сети есть «слитый» полный исходник WinRAR: подобные архивы на файлообменниках почти всегда оказываются фейком или вредоносным ПО. Второй миф — что открытость UnRAR означает открытость формата RAR целиком: это не так, спецификация кодировщика остаётся закрытой.

⚠️ Внимание: архивы с названиями вроде «winrar_source_code.zip» на торрентах и форумах — типичная приманка для распространения малвари. Реальный полный исходный код WinRAR публично никогда не публиковался.

Отдельный практический момент — уязвимости. В архиваторах периодически находят проблемы безопасности, связанные с обработкой специально подготовленных архивов. Поэтому, встраивая UnRAR в свой продукт, отслеживайте выход новых версий исходников и обновляйте библиотеку: патчи выходят вместе с обновлениями WinRAR.

Можно ли декомпилировать WinRAR, чтобы посмотреть код?

Технически исполняемые файлы можно дизассемблировать, но лицензионное соглашение WinRAR прямо запрещает декомпиляцию и реверс-инжиниринг. Кроме юридических рисков, результат такого анализа нельзя легально использовать в собственных разработках.

Практическое применение исходников UnRAR

Типовой сценарий использования — встраивание распаковки RAR в собственное приложение. Библиотека предоставляет функции для открытия архива, перебора содержимого и извлечения файлов в память или на диск. Вам нужно скомпилировать исходники в статическую или динамическую библиотеку и вызывать её API из своего кода.

Второй сценарий — обучение. Исходники UnRAR читаемы и хорошо структурированы, поэтому их используют как материал для изучения практических методов декомпрессии, разбора бинарных форматов и обработки потоковых данных. Для студентов и разработчиков это полезнее, чем абстрактные описания алгоритмов в учебниках.

  • 🛠️ Встраивание в ПО — легальная распаковка RAR в десктопных и серверных приложениях;
  • 📚 Обучение — изучение устройства декомпрессора и формата архивов;
  • 🔄 Миграция данных — пакетное извлечение старых RAR-архивов в скриптах;
  • 🧪 Исследование безопасности — анализ парсера на уязвимости в рамках законных аудитов.

Часто задаваемые вопросы

Открыт ли исходный код WinRAR полностью?

Нет. Закрыты и интерфейс программы, и алгоритм сжатия RAR. Публично доступны только исходники библиотеки распаковки UnRAR от того же разработчика.

Можно ли использовать UnRAR в коммерческом продукте?

Да, лицензия это разрешает, включая закрытые коммерческие проекты. Обязательные условия — указание авторства RARLAB и запрет на использование кода для создания RAR-упаковщика. Точные формулировки смотрите в license.txt из комплекта исходников.

Почему 7-Zip не может создавать RAR-архивы?

Потому что алгоритм сжатия RAR закрыт и не лицензируется сторонним разработчикам. 7-Zip использует UnRAR только для распаковки, а создавать может архивы собственных открытых форматов.

Где официально скачать исходники UnRAR?

На официальном сайте разработчика rarlab.com в разделе загрузок — архив называется примерно unrarsrc-версия.tar.gz. Другие источники использовать небезопасно.

Существует ли открытая спецификация формата RAR?

Официальной полной спецификации для создания архивов нет. Структура архива частично документирована в примечаниях к UnRAR, но этого достаточно только для чтения, а не для реализации собственного упаковщика.