Biblioteca Python gratuita para crear y gestionar grandes archivos ZIP
Una poderosa biblioteca Python de código abierto y muy rápida que permite a los desarrolladores Python cargar, extraer y analizar datos de más de 30 formatos diferentes de archivos, compresión y sistemas de archivos
¿Qué es la biblioteca Unblob?
Unblob es una biblioteca esencial de Python y una herramienta de línea de comandos diseñada para simplificar y acelerar la extracción de blobs binarios — archivos que contienen datos en formatos desconocidos o propietarios que se encuentran comúnmente en imágenes de firmware, volcados de memoria, paquetes de red o archivos cifrados. Desarrollada originalmente y mantenida por ONEKEY para su uso en su plataforma de análisis de producción, Unblob maneja con maestría el desafío de analizar estos archivos complejos al admitir más de 30 formatos diferentes de archivos, compresión y sistemas de archivos. Procesa eficientemente formatos como ZIP, TAR, GZIP, BZIP2, XZ, LZMA, SquashFS, CramFS, JFFS2, UBI/UBIFS y YAFFS2, extrayendo recursivamente el contenido y tallando fragmentos no identificados que permanecen sin contabilizar.
Libre para usar bajo la licencia MIT, Unblob es tanto altamente eficiente como increíblemente versátil. Ofrece un rendimiento ultrarrápido al aprovechar el multiproceso, código eficiente, archivos con mapeo de memoria y la biblioteca de coincidencia de alto rendimiento Hyperscan. La herramienta minimiza falsos positivos y fragmentos superpuestos al identificar los desplazamientos de inicio y fin usando reglas probadas en batalla y estándares de formato. Además, Unblob cuenta con una API fácil de manejar que permite a los usuarios escribir manejadores y extractores de formatos personalizados rápidamente, y soporta complementos cargados dinámicamente para ampliar su funcionalidad central. Esto convierte a Unblob en un recurso indispensable para cualquiera que necesite analizar datos binarios complejos y multilayer que contengan compresión, cifrado o sistemas de archivos incrustados.
Comenzando con Unblob
La forma recomendada de instalar Unblob es usando pypi.org. Por favor, use el siguiente comando para una instalación sin problemas.
Instalar la biblioteca Unblob vía PyPI
pip3 install unblob
Clona el repositorio de unblob desde GitHub
git clone https://github.com/onekey-sec/unblob.git
También es posible instalarlo manualmente; descargue los archivos de la última versión directamente del repositorio GitHub.Extraer formatos reconocidos usando la biblioteca Python
La biblioteca de código abierto Unblob ha incluido soporte para extraer contenido de diferentes formatos de archivo dentro de aplicaciones Python. La biblioteca ha incluido soporte para más de 30 archivos comprimidos, formatos de compresión y sistemas de archivos. Por favor, recuerde que para usar la biblioteca con todos los formatos compatibles, es necesario instalar todos los extractores. Los usuarios pueden utilizar varias opciones para personalizar el comportamiento de la biblioteca, como especificar el directorio de salida, la profundidad de recursión, el nivel de verbosidad o el formato del informe. El método extract_chunk puede ser utilizado por los desarrolladores para extraer el contenido de cada fragmento a un directorio de salida especificado. A continuación se muestra un fragmento de código de ejemplo que muestra cómo usar la biblioteca para extraer contenido a un directorio de salida dentro de aplicaciones Python.
¿Cómo extraer contenido a un directorio de salida usando la biblioteca de 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)
Realizar análisis de archivos ELF a través de la API de Python
La biblioteca de código abierto Unblob facilita a los desarrolladores de software detectar y extraer archivos ELF de blobs binarios desconocidos, así como identificar sus capacidades y características. La biblioteca admite archivos ELF de 32 bits y 64 bits, así como diferentes arquitecturas como x86, x86_64, ARM, MIPS y PowerPC. También puede manejar diferentes tipos de archivos ELF, como ejecutables, bibliotecas compartidas, archivos objeto, volcados de núcleo y módulos del kernel.
Extracción de metadatos a través de la API de Python
La biblioteca de código abierto Unblob ha incluido soporte para generar un archivo de metadatos dentro de sus aplicaciones Python. Los usuarios pueden usar la opción --report cuando ejecutan Unblob como herramienta de línea de comandos. Esta opción generará un archivo JSON que contiene información sobre los archivos extraídos, como su ruta, tamaño, tipo, magia, entropía y detalles de los fragmentos. Los usuarios pueden especificar el nombre y la ubicación del archivo JSON como argumento de la opción --report. Luego, los usuarios pueden ver o analizar el archivo metadata.json usando cualquier visor o analizador JSON.