7-Zip
7-Zip software | |
---|---|
7-Zip su Windows 11 | |
Genere | Compressione dei dati Archiviatore di file |
Sviluppatore | Igor Pavlov |
Data prima versione | 18 luglio 1999 |
Ultima versione | 24.09 (29 novembre 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | C++ C |
Toolkit | interfaccia grafica e interfaccia a riga di comando |
Licenza | GNU Lesser General Public License (licenza libera) |
Sito web | 7-zip.org/ |
7-Zip è un programma open source per la creazione e gestione di file compressi. Usa il proprio formato archivio 7z ma può leggere e scrivere in molti altri formati. È attivamente sviluppato da Igor Pavlov sin dalla prima versione del 1999.
Progettato originariamente per Microsoft Windows, è disponibile anche per i sistemi Linux e MacOS con interfaccia a riga di comando, rispettivamente dalle versioni 21.01 alpha e 21.02 alpha[1].
La maggior parte del codice sorgente di 7-Zip è distribuito sotto la GNU Lesser General Public License. È disponibile un porting multipiattaforma per sistemi Unix-like chiamato p7zip[2].
Formati
[modifica | modifica wikitesto]Il formato archivio 7z
[modifica | modifica wikitesto]Come impostazione predefinita, 7-Zip crea archivi di formato 7z, con l'estensione .7z. Ciascun archivio può contenere più file e cartelle. La compressione, sicurezza e la riduzione di grandezza sono raggiunte utilizzando una combinazione di filtri impilati. Questi possono essere preprocessori, algoritmi di compressione e filtri di cifratura. Il nucleo della compressione dei file .7z usa vari algoritmi, i più comuni sono bzip2, LZMA2 e LZMA.
Sviluppato da Igor Pavlov, LZMA è un software relativamente nuovo che fa il suo debutto come parte del formato 7z. LZMA è costituito da un grande dizionario scorrevole basato su pacchetti LZ di grandezza fissata a 4Gb, e utilizzante un range coder. Il formato nativo dei file formato 7z è aperto e modulare. Tutti i nomi dei file sono memorizzati con caratteri Unicode. Le specifiche ufficiali del file formato 7z sono distribuite con il codice sorgente del programma.
Altri formati supportati
[modifica | modifica wikitesto]7-Zip supporta un numero elevato di altri formati di archivi compressi e non compressi, includendo compressione e decompressione di ZIP (anche archivi multivolume), gzip, bzip2, tar, e dalla versione beta 9.04 il formato XZ. 7-Zip permette solo la decompressione dei formati CAB (Microsoft cabinet file), RAR, MSLZ, SWF, FLV, Arj, Z, LHA, CPIO, SMZIP, JAR, immagini ISO CD/DVD (7-Zip nelle versioni 4.42 e superiori), DMG, HFS, RPM e archivi debian (DEB); dalla versione 4.65 può estrarre altri formati come: ARJ, CAB, CHM, CPIO, DyjyEB, DMG, HFS, ISQ, LZH, LZMA, MSI, NSIS, RAR, RPM, UDF, WIN, XAR e Z (il supporto completo su estrazione e archiviazione è fornita solo per i seguenti formati: 7z, zip, gzip, bzip2 e tar).
7-Zip è capace di aprire alcuni file .msi (Microsoft installer), permettendo l'accesso al completo meta-file interno. Possono anche essere aperti altri formati di installer come i file CAB (compressione LZX) e NSIS (LZMA), questo significa che 7-Zip può essere usato per verificare se un file binario è un archivio; in maniera simile alcuni programmi eseguibili (.exe) possono essere aperti come archivi, potendone estrarre il contenuto.
Dalla versione 15.06 beta è possibile estrarre il contenuto degli archivi in formato RAR5[3].
Versioni
[modifica | modifica wikitesto]La versione originaria, dotata di interfaccia grafica (7-Zip File Manager), è disponibile per i sistemi operativi Microsoft a 32 bit e a 64 bit (che supporta maggiori quantità di memoria e una compressione più veloce) da Windows NT fino a Windows 11 (al 2022).[4]
La versione p7zip a riga di comando è stata adottata per l'utilizzo in sistemi operativi come Linux, FreeBSD, MacOS, AmigaOS 4 e vari altri[5].
È disponibile un front-end per p7zip con una GUI per Mac OS X dal nome di KEKA.[6] Sono fornite due versioni in riga di comando: 7x.exe, usando librerie esterne, e una versione stand-alone 7za.exe contenente moduli precostruiti; il supporto della compressione/decompressione di 7za è però limitata ai file di tipo 7z, zip, gzip, bzip2 e tar.
La versione con interfaccia a riga di comando è disponibile anche per i sistemi DOS (utilizzanti l'HX DOS Extender), ed è stata convertita per i sistemi Unix-like (p7zip).
Caratteristiche del programma
[modifica | modifica wikitesto]- Offre un altissimo rapporto di compressione col formato 7z tramite l'algoritmo di compressione LZMA;
- 7-Zip è software libero distribuito con licenza GNU LGPL;
- Supporta più formati di archiviazione:
- Per i formati ZIP e gzip fornisce un rapporto di compressione mediamente migliore del 2-10% rispetto a quello standard di PKZIP e WinZip;
- Può creare archivi 7z autoestraenti;
- È integrabile con la shell di Windows;
- Dispone di un file manager;
- Dispone di una versione con interfaccia a riga di comando;
- È disponibile anche sotto forma di plugin per il programma FAR Manager;
- Supporta il multithreading;
- È tradotto in 89 lingue (a partire dalla versione 21.00 alpha).
Modello di numerazione delle versioni
[modifica | modifica wikitesto]Dopo la versione 4.65 7-Zip cambia il suo schema di numerazione in “anno.revisione”[7], simile a quella usata da Ubuntu ed altri progetti. La prima pubblicazione con il nuovo modello di numerazione si è concretizzata, nel corso del 2009, con le versioni di sviluppo 9.04. Per tutto il 2010 si è comunque proseguito pubblicando minor release successive delle beta 9.x, senza mai averne una versione ufficialmente stabile. Lo schema è seguito ininterrottamente dal 2015 a oggi.
Sicurezza
[modifica | modifica wikitesto]Gli archivi autoestraenti prodotti da 7-Zip (incluso lo stesso eseguibile per l'installazione di 7-Zip) possono essere vulnerabili a esecuzione di codice arbitrario tramite il dirottamento DLL: se la DLL UXTheme.dll si trova nella stessa cartella del file eseguibile viene caricata ed eseguita. Nella versione 16.03 di 7-Zip le note di rilascio informano che è stata aggiunta una protezione nel programma di installazione e nei moduli SFX per prevenire questo tipo di attacco.[8]
Le versioni di 7-Zip 18.03 e precedenti contengono una vulnerabilità di esecuzione di codice arbitrario nel modulo che estrae i file dagli archivi RAR (CVE-2018-10115), la vulnerabilità è stata risolta il 30 aprile 2018 con la versione 18.05.[8]
Le versioni dalla 24.00 alla 24.07 (inclusa) soffrivano di una vulnerabilità che permetteva l'esecuzione di codice arbitrario per via della implementazione Zstandard di decompressione usata: questa risultava in un underflow aritmetico . Del codice poteva così essere scritto usando bytes extra alla fine del file compresso, che venivano poi caricati in memoria. La vulnerabilità (CVE-2024-11477) è stata corretta con la versione 24.08. [8][9]
Note
[modifica | modifica wikitesto]- ^ (EN) Igor Pavlov, History page (TXT), su 7-zip.org. URL consultato il 18 aprile 2022.
- ^ (EN) Igor Pavlov, Download page, su 7-zip.org. URL consultato il 4 dicembre 2017.
- ^ (EN) Igor Pavlov, 7-Zip 15.06 beta announce: "7-Zip now can extract RAR5 archives.", su sourceforge.net, 9 agosto 2015. URL consultato il 19 novembre 2015.
- ^ (EN) Igor Pavlov, 7-Zip Home, su 7-zip.org. URL consultato il 4 dicembre 2017.
- ^ Download, su www.7-zip.org. URL consultato il 30 dicembre 2019.
- ^ KEKA, su kekaosx.com. URL consultato il 4 dicembre 2017.
- ^ (EN) Igor Pavlov, 7-Zip Official Forum: "Version 9? Are you serious?", su sourceforge.net, 17 novembre 2009. URL consultato il 19 novembre 2015.
- ^ a b c (EN) HISTORY of the 7-Zip (TXT), su 7-zip.org. URL consultato l'8 maggio 2018.
- ^ (EN) Guru Baran, Critical 7-Zip Vulnerability Let Attackers Execute Arbitrary Code, su Cyber Security News, 25 novembre 2024. URL consultato il 24 dicembre 2024.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su 7-Zip
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su 7-zip.org.
- (EN) 7-Zip, su SourceForge.
- Repository sorgenti di 7-Zip, su sourceforge.net.
- Repository sorgenti di 7-Zip, su github.com.