Поиск исходного кода 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 отсутствует, это принципиальное ограничение лицензии.
Условия лицензии UnRAR
Лицензия UnRAR — не классическая open-source лицензия вроде GPL или MIT, а отдельный текст с важным ограничением. Код можно свободно использовать, изучать и встраивать в свои продукты, включая коммерческие, но запрещено использовать исходники UnRAR для создания компрессора, совместимого с форматом RAR. Иными словами, распаковщик делать можно, упаковщик — нельзя.
Ещё одно условие: при использовании кода нужно указать в документации или разделе «О программе», что применяется технология UnRAR от RARLAB. Точный актуальный текст лицензии всегда проверяйте в файле license.txt, который поставляется вместе с исходниками, — формулировки могут уточняться от версии к версии.
⚠️ Внимание: использование исходников UnRAR для реверс-инжиниринга алгоритма сжатия и создания собственного RAR-упаковщика нарушает лицензионное соглашение, даже если технически это выполнимо.
Где скачать исходники и как их собрать
Официальный источник исходного кода UnRAR — сайт разработчика rarlab.com, раздел с дистрибутивами. Там публикуется архив вида unrarsrc-версия.tar.gz, содержащий полное дерево исходников. Скачивать код стоит только с официального сайта: сторонние «сборники исходников WinRAR» нередко содержат вредоносные вставки или вовсе не имеют отношения к оригиналу.
☑️ Проверка перед использованием исходников UnRAR
Сборка под Linux обычно выполняется прилагаемым makefile:
tar -xzf unrarsrc-*.tar.gz
cd unrar
make
В результате получается исполняемый файл unrar и статическая библиотека, которую можно слинковать со своим проектом. Под Windows исходники собираются в Microsoft Visual Studio — в комплекте есть проектные файлы. Если сборка завершается ошибками, первым делом проверьте версию компилятора: свежие исходники могут требовать поддержки современных стандартов C++.
Альтернативы с полностью открытым кодом
Если цель — изучение алгоритмов сжатия или встраивание архивации в проект без лицензионных ограничений, стоит посмотреть на полностью открытые форматы. Они свободны и для распаковки, и для создания архивов.
| Проект | Лицензия | Создание архивов | Особенности |
|---|---|---|---|
| 7-Zip (7z) | GNU LGPL | Да | Высокая степень сжатия, открытый формат |
| zlib | zlib | Да | Стандарт де-факто для deflate-потоков |
| zstd (Zstandard) | BSD / GPLv2 | Да | Быстрое сжатие, разработка Meta |
| UnRAR | Собственная | Нет | Только распаковка RAR |
| brotli | MIT | Да | Оптимизирован для веб-контента |
Выбор зависит от задачи. Для внутреннего формата данных в своём приложении логичнее взять 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, но этого достаточно только для чтения, а не для реализации собственного упаковщика.