Darmowa biblioteka Pythona do tworzenia i zarządzania dużymi archiwami ZIP
Potężna, otwartoźródłowa, bardzo szybka biblioteka Pythona, która umożliwia programistom Pythona ładowanie, wyodrębnianie i parsowanie danych z ponad 30 różnych formatów archiwów, kompresji i systemów plików
Czym jest biblioteka Unblob?
Unblob to niezbędna biblioteka Pythona i narzędzie wiersza poleceń, zaprojektowane w celu uproszczenia i przyspieszenia wyodrębniania binarnych blobów — plików zawierających dane w nieznanych lub własnościowych formatach, które często występują w obrazach firmware, zrzutach pamięci, pakietach sieciowych lub zaszyfrowanych archiwach. Oryginalnie opracowana i utrzymywana przez ONEKEY do użytku w ich platformie analizy produkcji, Unblob fachowo radzi sobie z wyzwaniem parsowania tych złożonych plików, obsługując ponad 30 różnych formatów archiwów, kompresji i systemów plików. Efektywnie przetwarza formaty takie jak ZIP, TAR, GZIP, BZIP2, XZ, LZMA, SquashFS, CramFS, JFFS2, UBI/UBIFS oraz YAFFS2, rekurencyjnie wyodrębniając zawartość i wycinając niezidentyfikowane fragmenty, które pozostają nieujęte.
Darmowy w użyciu na licencji MIT, Unblob jest zarówno wysoce wydajny, jak i niezwykle wszechstronny. Zapewnia błyskawiczną wydajność dzięki wykorzystaniu wieloprocesowości, efektywnego kodu, plików mapowanych w pamięci oraz biblioteki dopasowań wysokiej wydajności Hyperscan. Narzędzie minimalizuje fałszywe alarmy i nakładające się fragmenty, identyfikując offsety początkowe i końcowe przy użyciu sprawdzonych reguł i standardów formatów. Dodatkowo Unblob oferuje łatwą w obsłudze API, które pozwala użytkownikom szybko pisać własne obsługiwacze formatów i ekstraktory, oraz obsługuje dynamicznie ładowane wtyczki rozszerzające jego podstawową funkcjonalność. To czyni Unblob niezbędnym zasobem dla każdego, kto musi analizować złożone, wielowarstwowe dane binarne zawierające kompresję, szyfrowanie lub wbudowane systemy plików.
Rozpoczęcie pracy z Unblob
Zalecany sposób instalacji Unblob to użycie pypi.org. Proszę użyć następującego polecenia, aby przeprowadzić płynną instalację.
Zainstaluj bibliotekę Unblob przez PyPI
pip3 install unblob
Sklonuj repozytorium unblob z GitHub
git clone https://github.com/onekey-sec/unblob.git
Można również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z GitHub repozytorium.Wyodrębnianie rozpoznanych formatów przy użyciu biblioteki Python
Biblioteka open source Unblob zawiera wsparcie dla wyodrębniania treści z różnych formatów plików w aplikacjach Python. Biblioteka obsługuje ponad 30 archiwów, formatów kompresji i systemów plików. Pamiętaj, że aby używać biblioteki ze wszystkimi obsługiwanymi formatami, wszystkie ekstraktory muszą być zainstalowane. Użytkownicy mogą korzystać z różnych opcji, aby dostosować zachowanie biblioteki, takich jak określenie katalogu wyjściowego, głębokości rekurencji, poziomu szczegółowości lub formatu raportu. Metoda extract_chunk może być używana przez programistów do wyodrębniania zawartości każdego fragmentu do określonego katalogu wyjściowego. Poniżej znajduje się przykładowy fragment kodu, który pokazuje, jak używać biblioteki do wyodrębniania treści do katalogu wyjściowego w aplikacjach Python.
Jak wyodrębnić zawartość do katalogu wyjściowego przy użyciu biblioteki Pythona?
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)
Wykonywanie analizy plików ELF za pomocą API Pythona
Biblioteka open source Unblob ułatwia programistom wykrywanie i wyodrębnianie plików ELF z nieznanych binarnych blobów, a także identyfikowanie ich możliwości i funkcji. Biblioteka obsługuje zarówno 32‑bitowe, jak i 64‑bitowe pliki ELF, a także różne architektury, takie jak x86, x86_64, ARM, MIPS i PowerPC. Potrafi również obsługiwać różne typy plików ELF, takie jak pliki wykonywalne, biblioteki współdzielone, pliki obiektowe, zrzuty pamięci (core dumps) oraz moduły jądra.
Ekstrakcja metadanych za pomocą API Pythona
Biblioteka open source Unblob zawiera wsparcie dla generowania pliku metadanych w aplikacjach Python. Użytkownicy mogą użyć opcji --report podczas uruchamiania Unblob jako narzędzia wiersza poleceń. Opcja ta wygeneruje plik JSON zawierający informacje o wyodrębnionych plikach, takie jak ich ścieżka, rozmiar, typ, magic, entropia oraz szczegóły fragmentów. Użytkownicy mogą określić nazwę i lokalizację pliku JSON jako argument opcji --report. Następnie mogą przeglądać lub analizować plik metadata.json przy użyciu dowolnego przeglądarki lub parsera JSON.