Zmiany w WinRAR 5.00

1. Nowy format archiwum RAR 5.0. Aby tworzyć archiwa w nowym formacie można użyć opcji "RAR 5.0" w dialogu archiwizacji lub użyć opcji -ma w linii poleceń.

Starsze aplikacje, włączając starsze wersje WinRARa, nie są w stanie otworzyć archiwum RAR 5.0, dlatego w przypadku dystrybucji takiego archiwum należy wziąć to pod uwagę. Archiwa w starszym formacie, RAR 4.x, można tworzyć używając opcji "RAR" (zamiast "RAR5") w dialogu archiwizacji.

2. Zmiany w algorytmie kompresji formatu RAR 5.0:

a) maksymalny rozmiar słownika kompresji został zwiększony do 1 GB dla 64-bitowej wersji WinRARa. 32-bitowy WinRAR przy tworzeniu archiwum może używać słownika o maksymalnym rozmiarze 256 MB. Obie wersje (32- i 64-bitowa) mogą rozpakować archiwa utworzone przy pomocy dowolnego słownika, nawet 1 GB

b) domyślny rozmiar słownika dla formatu RAR 5.0 to 32 MB, co przekłada się na wyższy stopień kompresji i wolniejszą archiwizację w porównaniu do formatu RAR 4.x o 4 MB słowniku. Do zmiany tej wartości służy opcja "Rozmiar słownika" w dialogu archiwizacji lub opcja -md<rozmiar> w linii poleceń

c) opcja -md<rozmiar> została zmodyfikowana w celu obsługi większych rozmiarów słowników. Na końcu opcji można użyć liter 'k', 'm' lub 'g' aby określić jednostki – kilobajty, megabajty lub gigabajty, np. -md64m oznacza słownik o rozmiarze 64 MB. Jeśli nie zostanie użyta żadna litera, program zakłada, że chodzi o megabajty: -md64m jest równoważne -md64

d) format RAR 5.0 obsługuje kompresję 32-bitowych plików wykonywalnych i kompresję delta, lecz używane w wersji RAR 4.x algorytmy kompresji tekstu, dźwięku, obrazów i 64-bitowych plików wykonywalnych nie są już wspierane. Powodem usunięcia tych algorytmów była ich słaba wydajność w obecnych czasach.

e) podczas dekompresji RAR 5.0 może wykorzystywać wiele rdzeni procesora. Pozwala to przyspieszyć dekompresję bardzo dużych, słabo kompresowalnych, plików lub takich, które używają sumy kontrolnej BLAKE2

3. Zmiany w formacie RAR 5.0:

a) czas pliku jest przechowywany w archiwum w formacie UTC, zamiast czasu lokalnego, jak w formacie RAR 4.x

b) nazwy plików i komentarze są zapisywane w kodowaniu UTF-8

4. Dane naprawcze w formacie RAR 5.0 bazują na korekcji błędów Reeda-Solomona. Jeśli blok danych naprawczych jest wystarczająco duży, około 5% lub większy, to nowy algorytm korekcji błędów jest dużo bardziej wydajny w przypadku wielomiejscowego uszkodzenia niż ten zastosowany w wersji RAR 4.x. Przy mniejszym rozmiarze danych naprawczych wydajność nowej metody jest zbliżona do wydajności starej metody.

Oprócz zwykłych uszkodzeń, nowy algorytm naprawy jest w stanie wykryć także przesunięcie danych (wynikłe z usunięcia lub dodania losowych danych) dużo efektywniej niż ten zostosowany w poprzednich wersjach RARa. Maksymalny naprawialny rozmiar wstawionych danych wynosi kilka megabajtów. Maksymalny naprawialny rozmiar usuniętych danych zależy od rodzaju uszkodzenia i może dochodzić do rozmiaru całego bloku danych naprawczych.

Najlepszą wydajność naprawy uzyskuje się jednak wtedy, gdy dane nie ulegną przesunięciu. Dlatego, jeśli podczas kopiowania za pomocą specjalnego programu archiwum z uszkodzonego nośnika ów program daje wybór wypełnienia uszkodzonego obszaru zerami (lub inną wartością) lub wycięcie go, to należy wybrać wypełnienie, ponieważ to umożliwi zachowanie oryginalnej pozycji nieuszkodzonych obszarów archiwum.

Dane naprawcze formatu RAR 5.0 są bardziej odporne na uszkodzenie i mogą być wykorzystane nawet gdy same są częściowo uszkodzone. Należy mieć na uwadze, że polecenie "Napraw" nie naprawia samych danych naprawczych, jedynie zawartość zarchiwizowanych plików. Po pomyślnej naprawie może się okazać konieczne utworzenie nowych danych naprawczych dla zapisanych plików.

Dane naprawcze w formacie RAR 5.0 nie składają się z 512-bajtowych sektorów, tylko z bardziej skomplikowanych struktur. Niemożliwe jest więc określenie ich rozmiaru w sektorach. Dla formatu RAR 5.0 parametr polecenia 'rr' i opcji '-rr' zawsze oznacza procent wielkości archiwum, nawet jeśli w parametrze nie ma znaków '%' ani 'p'. Zwykle N% danych naprawczych umożliwia odzyskanie N% uszkodzonego archiwum w przypadku jednego ciągłego uszkodzenia. Przyrost wielkości archiwum jest tylko nieco większy od N%. W przypadku wielomiejscowego uszkodzenia dane naprawcze w formacie RAR 5.0 są wydajniejsze niż w formacie RAR 4.x.

W celu zwiększenia wydajności kodowania Reeda-Solomona użyliśmy wskazówek zawartych w dokumencie "Screaming Fast Galois Field Arithmetic Using Intel SIMD Instructions" napisanego przez Jamesa S. Planka, Kevina M. Greenana oraz Ethana L. Millera. W zwiększeniu wydajności mieli również udział Artem Drobanov i Bulat Ziganshin, których pomysły i przykłady wykorzystaliśmy.

5. Polecenie "Testuj" weryfikuje poprawność danych naprawczych. Odbywa się to po weryfikacji wszystkich plików znajdujących się w archiwum.

Jeśli uszkodzone archiwum zawiera dane naprawcze, to istnieje możliwość jego naprawy nawet jeśli dane naprawcze same są uszkodzone. Polecenie "Napraw" podejmuje próbę wykorzystania nawet częściowo uszkodzonych danych naprawczych. Dlatego jeśli test danych naprawczych wypadł niepomyślnie, to należy to traktować jako sygnał do odbudowania archiwum, a nie zaniechania użycia polecenia "Napraw".

6. Zmiany w algorytmie szyfrowania:

a) zamiast AES-128 używany jest AES-256 w trybie CBC. Funkcja pozyskiwania klucza bazuje na PBKDF2 przy użyciu HMAC-SHA256

b) specjalna metoda weryfikacji hasła umożilwia wykrycie nieprawidłowego hasła bez konieczności wypakowywania całego zaszyfrowanego pliku

c) jeśli nagłówki plików nie są zaszyfrowane (nie została włączona opcja "Zaszyfruj nazwy plików"), to sumy kontrolne dla zaszyfrowanych plików w archiwum RAR 5.0 są modyfikowane specjalnym algorytmem bazującym na użytym haśle. Ma to na celu uniemożliwienie odgadnięcia zawartości pliku na podstawie sumy kontrolnej.

7. W archiwach RAR 5.0 można używać sumy kontrolnej bazującej na 256-bitowej funkcji skrótu BLAKE2sp (https://blake2.net) zamiast 32-bitowego CRC32. Aby włączyć tę właściwość należy na zakładce "Opcje" dialogu archiwizacji włączyć opcję "Użyj sumy kontrolnej BLAKE2" lub użyć opcji -htb w linii poleceń.

Suma kontrolna BLAKE2 jest nieco większa niż CRC32, lecz może służyć do identyfikacji plików. Jeśli dwa pliki mają identyczną sumę kontrolną BLAKE2, to w praktyce oznacza, że są identyczne (w przypadku CRC32 dwa różne pliki mogą mieć tę samą sumę kontrolną). Wykrywanie błędów w danych przy pomocy BLAKE2 jest również wydajniejsze niż w przypadku CRC32.

8. Właściwości usunięte:

a) informacja autentyczności była zawodna i została usunięta

b) opcja -en ("nie dodawaj znacznika końca archiwum") nie jest już obsługiwana dla archiwów w formacie RAR 5.0, które zawsze taki znacznik posiadają. Ten znacznik pozwala pominąć dodatkowe dane dołączane na końcu archiwum (np. podpis cyfrowy)

c) stary styl nazywania woluminów (bazujący na rozszerzeniach .r00, .r01, .r02 itd.) nie jest obsługiwany dla archiwów w formacie RAR 5.0

d) komentarze plików nie są już obsługiwane zarówno dla formatu RAR 4.x jak i RAR 5.0. Polecenie 'cf' już nie jest obsługiwane. Nie wpływa to na obsługę komentarza archiwum, która jest dostępna dla obu formatów i nie zostanie wycofana.

9. Polecenie "Ustaw hasło" i opcja "Rozmiar słownika" zostały przeniesione na zakładkę "Ogólne" dialogu archiwizacji.

10. Możliwe jest przechowywanie w archiwum dowiązań symbolicznych i punktów ponownej analizy jako dowiązań a nie plików. Aby włączyć tę właściwość należy włączyć opcję "Zachowaj dowiązania symboliczne jako dowiązania" na zakładce "Zaawansowane" w dialogu archiwizacji lub użyć opcji -ol w linii poleceń.

Dla twardych dowiązań tymi opcjami są, odpowiednio, "Zachowaj twarde dowiązania jako dowiązania" oraz -oh.

Obie opcje są dostępne tylko dla archiwum formatu RAR 5.0.

11. Dodano możliwość rozpakowywania archiwów XZ.

12. Zmiany dotyczące woluminów naprawczych:

a) maksymalna liczba woluminów zwykłych i naprawczych (.rar i .rev) wynosi 65535 zamiast 255

b) operacje wykonywane na woluminach naprawczych formatu RAR 5.0 są szybsze niż dla formatu RAR 4.x

c) poza samymi danymi naprawczymi woluminy naprawcze przechowują dodatkowo sumy kontrolne plików, dla których zostały utworzone, co powoduje, że są nieco od nich większe. Należy mieć to na uwadze w przypadku planowania przenoszenia woluminów na nośniki zewnętrzne - być może zaistnieje konieczność określenia rozmiaru zwykłego woluminu o kilka kilobajtów mniejszego od pojemności nośnika danych.

13. Maksymalna długość ścieżki dla pliku wewnątrz archiwum RAR i ZIP została zwiększona do 2048 znaków.

14. Konsolowy RAR zwraca kod 11 jeśli wykryje, że użytkownik podał nieprawidłowe hasło. Taki kod może być zwrócony tylko w przypadku przetwarzania archiwum RAR 5.0. Odróżnienie nieprawidłowego hasła od uszkodzenia danych nie jest możliwe dla archiwów RAR 4.x.

15. Polecenia 'v' i 'l' wyświetlają nazwę pliku w archiwum na końcu linii, a nie na początku, jak poprzednie wersje. Ponadto niektóre informacje są teraz wyświetlane tylko przez polecenia 'lt' i 'vt'.

Polecenia 'vt' i 'lt' wyświetlają szczegółowe informacje o zarchiwizowanych plikach w postaci wieloliniowego raportu.

Polecenia 'vta' i 'lta' dodatkowo wyświetlają nagłówki serwisowe.

16. Teraz zarówno WinRAR jak i konsolowy RAR oczekują, że listy plików (jak np. ta używana w poleceniu 'rar a archiwum @lista') są zapisane w kodowaniu ANSI. Poprzednio konsolowy RAR oczekiwał, że taka lista będzie zapisana w kodowaniu OEM. Domyślne kodowanie można zmienić za pomocą opcji -sc<kodowanie>l.

17. Wbudowana przeglądarka plików wykrywa pliki tekstowe w kodowaniu UTF-8 i UTF-16 little endian i automatycznie przełącza się na właściwy tryb.

18. Plik dziennika (rar.log) jest teraz zapisywany w kodowaniu UTF-16 little endian. WinRAR automatycznie czyści istniejący plik dziennika, jeśli nie jest w kodowaniu UTF-16, aby uniknąć mieszania różnych standardów zapisu tekstu. Dla konsolowego RARa należy jednak samemu usunąć stary plik dziennika.

Aby zmienić domyślne kodowanie można użyć opcji -sc<kodowanie>g, np. -scag - dla kodowania ANSI.

19. Komenda 'r' w linii poleceń może przyjąć jako opcjonalny parametr ścieżkę, w której umieści naprawione archiwum, np.:

rar r uszkodzone.rar c:\naprawione\