Samorozpakowujące się archiwum

Samorozpakowujące się archiwum utworzone przy użyciu 7-Zip

Archiwum samorozpakowujące ( SFX lub SEA ) to wykonywalny program komputerowy , który zawiera skompresowane dane w pliku archiwum w połączeniu z wykonywalnymi maszynowo instrukcjami programu w celu wyodrębnienia tych informacji w kompatybilnym systemie operacyjnym i bez konieczności posiadania odpowiedniego programu zainstalowany na komputerze docelowym. Część wykonywalna pliku jest znana jako kod pośredniczący dekompresora .

Pliki samorozpakowujące są używane do udostępniania skompresowanych plików stronie, która niekoniecznie musi mieć oprogramowanie do dekompresji zwykłego archiwum. Użytkownicy mogą również używać samorozpakowującego się oprogramowania do dystrybucji własnego oprogramowania. Na przykład program instalacyjny WinRAR jest tworzony przy użyciu graficznego samorozpakowującego się modułu GUI RAR Default.sfx.

Przegląd

Archiwa samorozpakowujące zawierają moduł pliku wykonywalnego, moduł używany do uruchamiania nieskompresowanych plików z plików skompresowanych. Taki skompresowany plik nie wymaga zewnętrznego programu do dekompresji zawartości samorozpakowującego się pliku i może sam uruchomić operację. Jednak archiwizatory plików, takie jak WinRAR , nadal mogą traktować samorozpakowujące się pliki jak inne skompresowane pliki. Korzystając z archiwizatora plików, użytkownicy mogą przeglądać lub dekompresować otrzymane samorozpakowujące się pliki bez uruchamiania kodu wykonywalnego (na przykład, jeśli obawiają się wirusów).

Samorozpakowujące się archiwum jest wyodrębniane i przechowywane na dysku, gdy jest uruchamiane w systemie operacyjnym , który je obsługuje. Wiele wbudowanych programów samorozpakowujących obsługuje szereg argumentów wiersza poleceń, takich jak określanie lokalizacji docelowej lub wybieranie tylko określonych plików.

W przeciwieństwie do archiwów samorozpakowujących się, archiwa niesamorozpakowujące zawierają tylko zarchiwizowane pliki i należy je rozpakować za pomocą programu, który jest z nimi zgodny. Chociaż samorozpakowujących się archiwów nie można rozpakować w innym systemie operacyjnym, zwykle można je otworzyć za pomocą odpowiedniego programu do wyodrębniania, ponieważ to narzędzie zignoruje wykonywalną część pliku i wyodrębni tylko zasób archiwum. Samorozpakowujący się plik wykonywalny może wymagać zmiany nazwy, aby zawierał rozszerzenie pliku powiązane z odpowiednim programem pakującym; formaty plików archiwów, o których wiadomo, że to obsługują, to ARJ i ZIP . Zazwyczaj samorozpakowujące się pliki mają rozszerzenie .exe, tak jak każdy inny plik wykonywalny.

Na przykład archiwum może nosić nazwę somefiles.zip — można je otworzyć w dowolnym systemie operacyjnym za pomocą odpowiedniego menedżera archiwów, który obsługuje zarówno format pliku, jak i zastosowany algorytm kompresji. Można go również przekonwertować na plik somefiles.exe, który samorozpakuje się w systemie Microsoft Windows . Nie rozpakuje się samoczynnie pod Linuksem , ale można go otworzyć za pomocą odpowiedniego menedżera archiwów. Pliki, które nie są rozpoznawane jako archiwa przez menedżerów archiwów ze względu na ich wykonywalne rozszerzenie, można zmienić nazwę na .zip. Działa to w przypadku archiwów ZIP ze względu na sposób definiowania nagłówka ZIP, ale niekoniecznie w przypadku innych mniej elastycznych formatów archiwów.

Istnieje kilka funkcjonalnie równoważnych, ale niekompatybilnych formatów plików archiwów, w tym ZIP, RAR, 7z i wiele innych. Wiele programów może obsługiwać wiele typów archiwów, podczas gdy inne mogą tworzyć, rozpakowywać lub modyfikować tylko jeden typ. Ponadto istnieje rozróżnienie między formatem pliku a algorytmem kompresji. Pojedynczy format pliku, taki jak 7z, może obsługiwać wiele różnych algorytmów kompresji, w tym LZMA , LZMA2 , PPMd i BZip2 . Narzędzia do dekompresji muszą być w stanie obsłużyć zarówno format pliku, jak i algorytm używany podczas rozszerzania archiwów samorozpakowujących się lub standardowych. W zależności od opcji użytych do stworzenia samorozpakowującego się archiwum, kod wykonywalny umieszczony na początku może się różnić. Jeśli porównasz na przykład archiwum LZMA 7z z archiwum LZMA2 7z, procedury dekompresji będą się różnić

Kilka programów może tworzyć samorozpakowujące się archiwa. Wśród Windows WinZip , WinRAR , 7-Zip , WinUHA, KGB Archiver , Make SFX, wbudowany kreator IExpress i wiele innych, niektóre eksperymentalne. Użytkownicy komputerów Macintosh mogą wybrać StuffIt , The Unarchiver lub 7zX jako swoje archiwizatory. Istnieją również programy, które tworzą samorozpakowujące się archiwa w systemie Unix jako skrypty powłoki , które wykorzystują programy takie jak tar i gzip (które muszą być obecne w systemie docelowym). Inne (takie jak 7-Zip lub RAR ) mogą tworzyć samorozpakowujące się archiwa jako zwykłe pliki wykonywalne w formacie ELF . Jednym z wczesnych przykładów samorozpakowujących się archiwów jest Unixowe shar , które połączyło wiele plików tekstowych w skrypt powłoki, który odtwarzał ich oryginalną zawartość po wykonaniu.

Możliwe jest archiwizowanie zarówno danych, jak i plików wykonywalnych za pomocą archiwów samorozpakowujących. Należy je odróżnić od kompresji wykonywalnej , gdzie plik wykonywalny zawiera tylko jeden plik wykonywalny, a uruchomienie pliku nie powoduje zapisania nieskompresowanego pliku na dysku, ale wykonanie jego kodu w pamięci po dekompresji.

Zalety

Archiwizowanie plików zamiast wysyłania ich osobno umożliwia połączenie kilku powiązanych plików w jeden zasób. Inną korzyścią jest to, że zmniejsza rozmiar plików, które nie są jeszcze wydajnie skompresowane (większość algorytmów kompresji nie może zmniejszyćrozmiaru już skompresowanych plików. Kompresja zwykle zmniejsza rozmiar zwykłych dokumentów tekstowych, ale rzadko wpływa na pliki JPEG lub edytory tekstu dokumentów, ponieważ wiele nowoczesnych edytorów tekstu zawiera już pewien stopień kompresji). Oprócz korzyści płynących ze skompresowanych archiwów, samorozpakowujące się archiwa mogą być również używane przez użytkowników bez programów niezbędnych do rozpakowania ich zawartości, o ile korzystają z kompatybilnego systemu operacyjnego. Samorozpakowujące się archiwum może być wygodniejsze dla użytkowników, którzy mają oprogramowanie do zarządzania archiwami.

Tak długo, jak pozwala na to podstawowy algorytm kompresji i format, samorozpakowujące się archiwa mogą być również szyfrowane ze względów bezpieczeństwa. Należy jednak zauważyć, że w wielu przypadkach nazwy plików i katalogów nie są uwzględniane w szyfrowaniu i każdy może je przeglądać bez klucza lub hasła. Jeśli dana osoba może odgadnąć część zawartości plików na podstawie samych nazw lub kontekstu, osoba atakująca może złamać szyfrowanie całego archiwum przy użyciu jedynie rozsądnej ilości mocy obliczeniowej i czasu. W przypadku ważnych plików należy zastosować bardziej odpowiedni algorytm szyfrowania.

Niedogodności

Wadą archiwów samorozpakowujących się jest to, że uruchamianie plików wykonywalnych o niezweryfikowanej niezawodności, na przykład wysyłanych jako załącznik do wiadomości e-mail lub pobieranych z Internetu, może stanowić zagrożenie dla bezpieczeństwa. Plik wykonywalny opisany jako samorozpakowujące się archiwum może w rzeczywistości być złośliwym programem. Jednym z zabezpieczeń przed tym jest otwarcie go za pomocą menedżera archiwum zamiast jego wykonywania (utrata korzyści z samorozpakowania); menedżer archiwum albo zgłosi, że plik nie jest archiwum, albo pokaże podstawowe metadane pliku wykonywalnego - wyraźna wskazówka, że ​​plik nie jest w rzeczywistości archiwum samorozpakowującym.

Dodatkowo, niektóre systemy dystrybucji plików nie akceptują plików wykonywalnych, aby zapobiec transmisji szkodliwych programów. Systemy te nie zezwalają na samorozpakowujące się pliki archiwów, chyba że nadawca zmieni nazwę tych plików na, powiedzmy, somefiles.exe, a później odbiorca ponownie zmieni ich nazwę. Technika ta staje się jednak stopniowo coraz mniej skuteczna wraz ze wzrostem liczby pakietów bezpieczeństwa i oprogramowania antywirusowego packages zamiast tego skanuje nagłówki plików w poszukiwaniu podstawowego formatu, zamiast polegać na poprawnym rozszerzeniu pliku. Te systemy bezpieczeństwa nie dadzą się zwieść nieprawidłowemu rozszerzeniu pliku i są szczególnie rozpowszechnione w analizie załączników do wiadomości e-mail.

Archiwa samorozpakowujące będą działać tylko w rodzinie systemów operacyjnych i platformach, z którymi są kompatybilne, co utrudnia wyodrębnienie ich zawartości w innych systemach. Przykłady samorozpakowujących się archiwów, które mogą być uruchamiane w wielu systemach docelowych (takich jak DOS i CP/M ), a nie tylko zawartość archiwum, aby można było ich używać w wielu systemach, są bardzo rzadkie, ponieważ wymagają wbudowanego kodu pośredniczącego dekompresora, aby był gruby plik binarny .

Ponadto, ponieważ samorozpakowujące się archiwa muszą zawierać kod wykonywalny do obsługi rozpakowywania zawartego pliku archiwum, są one nieco większe niż oryginalne archiwum.

Zobacz też

Linki zewnętrzne