Thư viện Python miễn phí để tạo và quản lý các kho lưu trữ ZIP lớn
Một thư viện Python mã nguồn mở mạnh mẽ và rất nhanh cho phép các nhà phát triển Python tải, trích xuất và phân tích dữ liệu từ hơn 30 định dạng lưu trữ, nén và hệ thống tệp khác nhau
Thư viện Unblob là gì?
Unblob là một thư viện Python và công cụ dòng lệnh thiết yếu, được thiết kế để đơn giản hoá và tăng tốc quá trình trích xuất các binary blob — các tệp chứa dữ liệu ở định dạng không xác định hoặc độc quyền thường gặp trong hình ảnh firmware, dump bộ nhớ, gói mạng, hoặc các kho lưu trữ được mã hoá. Ban đầu được ONEKEY phát triển và duy trì để sử dụng trong nền tảng phân tích sản xuất của họ, Unblob xử lý một cách chuyên nghiệp thách thức phân tích các tệp phức tạp này bằng cách hỗ trợ hơn 30 định dạng lưu trữ, nén và hệ thống tệp khác nhau. Nó hiệu quả xử lý các định dạng như ZIP, TAR, GZIP, BZIP2, XZ, LZMA, SquashFS, CramFS, JFFS2, UBI/UBIFS và YAFFS2, trích xuất nội dung một cách đệ quy và tách ra các khối không xác định còn lại.
Miễn phí sử dụng theo giấy phép MIT, Unblob vừa hiệu quả cao vừa vô cùng linh hoạt. Nó mang lại hiệu năng cực nhanh bằng cách tận dụng đa tiến trình, mã hiệu quả, tệp được ánh xạ bộ nhớ và thư viện khớp mẫu hiệu năng cao Hyperscan. Công cụ này giảm thiểu các cảnh báo sai và các đoạn chồng lấn bằng cách xác định vị trí bắt đầu và kết thúc dựa trên các quy tắc và tiêu chuẩn định dạng đã được kiểm chứng. Ngoài ra, Unblob có API dễ sử dụng cho phép người dùng nhanh chóng viết các trình xử lý định dạng và bộ trích xuất tùy chỉnh, và nó hỗ trợ các plugin được tải động để mở rộng chức năng cốt lõi. Điều này khiến Unblob trở thành tài sản không thể thiếu cho bất kỳ ai cần phân tích dữ liệu nhị phân phức tạp, đa lớp chứa nén, mã hoá hoặc hệ thống tệp nhúng.
Bắt đầu với Unblob
Phương pháp khuyến nghị để cài đặt Unblob là sử dụng pypi.org. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.
Cài đặt Thư viện Unblob qua PyPI
pip3 install unblob
Sao chép kho lưu trữ unblob từ GitHub
git clone https://github.com/onekey-sec/unblob.git
Cũng có thể cài đặt thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ GitHub repository.Trích xuất các định dạng đã nhận dạng bằng Thư viện Python
Thư viện mã nguồn mở Unblob đã bao gồm hỗ trợ trích xuất nội dung từ các định dạng tệp khác nhau trong các ứng dụng Python. Thư viện đã bao gồm hỗ trợ cho hơn 30 loại lưu trữ, định dạng nén và hệ thống tệp. Vui lòng nhớ rằng để sử dụng thư viện với tất cả các định dạng được hỗ trợ, cần cài đặt tất cả các bộ trích xuất. Người dùng có thể sử dụng nhiều tùy chọn để tùy chỉnh hành vi của thư viện, chẳng hạn như chỉ định thư mục đầu ra, độ sâu đệ quy, mức độ chi tiết, hoặc định dạng báo cáo. Phương thức extract_chunk có thể được các nhà phát triển sử dụng để trích xuất nội dung của mỗi khối vào một thư mục đầu ra được chỉ định. Dưới đây là một đoạn mã mẫu cho thấy cách sử dụng thư viện để trích xuất nội dung vào một thư mục đầu ra trong các ứng dụng Python.
Cách trích xuất nội dung vào thư mục đầu ra bằng thư viện 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)
Thực hiện phân tích tệp ELF qua API Python
Thư viện mã nguồn mở Unblob giúp các nhà phát triển phần mềm dễ dàng phát hiện và trích xuất các tệp ELF từ các blob nhị phân không xác định, cũng như xác định khả năng và tính năng của chúng. Thư viện hỗ trợ cả tệp ELF 32-bit và 64-bit, cũng như các kiến trúc khác nhau như x86, x86_64, ARM, MIPS và PowerPC. Nó cũng có thể xử lý các loại tệp ELF khác nhau, chẳng hạn như tệp thực thi, thư viện chia sẻ, tệp đối tượng, dump lõi và mô-đun kernel.
Trích xuất siêu dữ liệu qua API Python
Thư viện mã nguồn mở Unblob đã bao gồm hỗ trợ tạo tệp siêu dữ liệu trong các ứng dụng Python của họ. Người dùng có thể sử dụng tùy chọn --report khi chạy Unblob như một công cụ dòng lệnh. Tùy chọn này sẽ tạo ra một tệp JSON chứa thông tin về các tệp đã được trích xuất, chẳng hạn như đường dẫn, kích thước, loại, magic, entropy và chi tiết các khối. Người dùng có thể chỉ định tên và vị trí của tệp JSON như một đối số cho tùy chọn --report. Sau đó, người dùng có thể xem hoặc phân tích tệp metadata.json bằng bất kỳ trình xem hoặc bộ phân tích JSON nào.