Bibliothèque Python gratuite pour créer et gérer de grandes archives ZIP
Une puissante bibliothèque Python open source très rapide qui permet aux développeurs Python de charger, extraire et analyser des données provenant de plus de 30 formats différents d'archives, de compression et de systèmes de fichiers
Qu'est-ce que la bibliothèque Unblob ?
Unblob est une bibliothèque Python essentielle et un outil en ligne de commande conçu pour simplifier et accélérer l'extraction de blobs binaires — des fichiers contenant des données dans des formats inconnus ou propriétaires, couramment trouvés dans les images de firmware, les vidages de mémoire, les paquets réseau ou les archives chiffrées. Initialement développé et maintenu par ONEKEY pour être utilisé dans leur plateforme d'analyse de production, Unblob gère avec expertise le défi de l'analyse de ces fichiers complexes en prenant en charge plus de 30 formats d'archives, de compression et de systèmes de fichiers différents. Il traite efficacement des formats tels que ZIP, TAR, GZIP, BZIP2, XZ, LZMA, SquashFS, CramFS, JFFS2, UBI/UBIFS et YAFFS2, extrayant récursivement le contenu et découpant les morceaux non identifiés qui restent non comptabilisés.
Gratuit sous licence MIT, Unblob est à la fois très efficace et incroyablement polyvalent. Il offre des performances ultra-rapides en tirant parti du multiprocessus, d'un code efficace, de fichiers mémoire-mappés et de la bibliothèque de correspondance haute performance Hyperscan. L'outil minimise les faux positifs et les fragments qui se chevauchent en identifiant les décalages de début et de fin à l'aide de règles éprouvées et de normes de format. De plus, Unblob propose une API facile à manipuler qui permet aux utilisateurs d'écrire rapidement des gestionnaires de formats personnalisés et des extracteurs, et il prend en charge les plugins chargés dynamiquement pour étendre ses fonctionnalités de base. Cela fait d'Unblob un atout indispensable pour quiconque doit analyser des données binaires complexes et multicouches contenant de la compression, du chiffrement ou des systèmes de fichiers embarqués.
Premiers pas avec Unblob
La méthode recommandée pour installer Unblob est d'utiliser pypi.org. Veuillez utiliser la commande suivante pour une installation fluide.
Installer la bibliothèque Unblob via PyPI
pip3 install unblob
Cloner le dépôt unblob depuis GitHub
git clone https://github.com/onekey-sec/unblob.git
Il est également possible de l'installer manuellement; téléchargez les derniers fichiers de version directement depuis le dépôt GitHub.Extraire les formats reconnus à l'aide de la bibliothèque Python
La bibliothèque open source Unblob inclut la prise en charge de l'extraction de contenu à partir de différents formats de fichiers dans les applications Python. La bibliothèque prend en charge plus de 30 archives, formats de compression et systèmes de fichiers. Veuillez vous rappeler que pour utiliser la bibliothèque avec tous les formats pris en charge, tous les extracteurs doivent être installés. Les utilisateurs peuvent utiliser diverses options pour personnaliser le comportement de la bibliothèque, telles que la spécification du répertoire de sortie, la profondeur de récursion, le niveau de verbosité ou le format du rapport. La méthode extract_chunk peut être utilisée par les développeurs pour extraire le contenu de chaque fragment vers un répertoire de sortie spécifié. Voici un extrait de code d'exemple qui montre comment utiliser la bibliothèque pour extraire du contenu vers un répertoire de sortie dans les applications Python.
Comment extraire le contenu vers un répertoire de sortie en utilisant la bibliothèque Python ?
import unblob
# Scan a file for known formats
file_path = "some_file.bin"
chunks = unblob.scan_file(file_path)
# Extract each chunk to an output directory
output_dir = "some_dir"
for chunk in chunks:
unblob.extract_chunk(chunk, output_dir)
Effectuer une analyse de fichiers ELF via l'API Python
La bibliothèque open source Unblob facilite la détection et l'extraction de fichiers ELF à partir de blobs binaires inconnus pour les développeurs, ainsi que l'identification de leurs capacités et fonctionnalités. La bibliothèque prend en charge les fichiers ELF 32 bits et 64 bits, ainsi que différentes architectures telles que x86, x86_64, ARM, MIPS et PowerPC. Elle peut également gérer différents types de fichiers ELF, tels que les exécutables, les bibliothèques partagées, les fichiers objets, les core dumps et les modules du noyau.
Extraction des métadonnées via l'API Python
La bibliothèque open source Unblob a ajouté la prise en charge de la génération d'un fichier de métadonnées dans leurs applications Python. Les utilisateurs peuvent utiliser l'option --report lorsqu'ils exécutent Unblob en tant qu'outil en ligne de commande. Cette option génère un fichier JSON contenant des informations sur les fichiers extraits, telles que leur chemin, taille, type, magic, entropie et détails des blocs. Les utilisateurs peuvent spécifier le nom et l'emplacement du fichier JSON en tant qu'argument de l'option --report. Ils peuvent ensuite visualiser ou analyser le fichier metadata.json à l'aide de n'importe quel visualiseur ou analyseur JSON.