کتابخانهٔ رایگان پایتون برای ایجاد و مدیریت آرشیوهای بزرگ ZIP
یک کتابخانهٔ قدرتمند منبع باز بسیار سریع پایتون که به توسعهدهندگان پایتون امکان بارگذاری، استخراج و تجزیهٔ دادهها از بیش از ۳۰ فرمت مختلف آرشیو، فشردهسازی و سیستمفایل را میدهد
کتابخانه Unblob چیست؟
Unblob یک کتابخانه پایتون و ابزار خط فرمان اساسی است که برای سادهسازی و تسریع استخراج بلوکهای باینری—فایلی که حاوی دادهها در قالبهای ناشناخته یا اختصاصی هستند و معمولاً در تصاویر فریمور، دامپهای حافظه، بستههای شبکه یا آرشیوهای رمزگذاریشده یافت میشوند—طراحی شده است. این ابزار در ابتدا توسط ONEKEY برای استفاده در پلتفرم تحلیل تولیدی آنها توسعه و نگهداری شد و Unblob بهطور ماهرانه چالش تجزیه این فایلهای پیچیده را با پشتیبانی از بیش از ۳۰ قالب مختلف آرشیو، فشردهسازی و سیستمفایل بر عهده میگیرد. این ابزار بهصورت کارآمد قالبهایی مانند ZIP، TAR، GZIP، BZIP2، XZ، LZMA، SquashFS، CramFS، JFFS2، UBI/UBIFS و YAFFS2 را پردازش میکند و بهصورت بازگشتی محتوا را استخراج کرده و بخشهای ناشناختهای که هنوز شناسایی نشدهاند را جدا میکند.
بهصورت رایگان تحت مجوز MIT، Unblob هم بسیار کارآمد است و هم فوقالعاده انعطافپذیر. این ابزار با بهرهگیری از پردازش چندنخی، کد بهینه، فایلهای حافظهنگاشته و کتابخانهٔ مطابقت با کارایی بالا Hyperscan، عملکردی سریع و بینظیر ارائه میدهد. ابزار با شناسایی آفستهای شروع و پایان با استفاده از قوانین آزمودهشده و استانداردهای فرمت، مثبتهای کاذب و تکههای همپوشان را به حداقل میرساند. علاوه بر این، Unblob دارای API آساناستفادهای است که به کاربران امکان میدهد بهسرعت هندلرها و استخراجکنندههای سفارشی فرمت بنویسند و از افزونههای بارگذاریشده بهصورت پویا برای گسترش عملکرد اصلی آن پشتیبانی میکند. این ویژگیها Unblob را به داراییای ضروری برای هر کسی که نیاز به تجزیه و تحلیل دادههای باینری پیچیده و چند لایه شامل فشردهسازی، رمزنگاری یا سیستمهای فایل توکار دارد، تبدیل میکند.
شروع کار با Unblob
روش پیشنهادی برای نصب Unblob استفاده از pypi.org است. لطفاً برای نصب بدون مشکل از فرمان زیر استفاده کنید.
نصب کتابخانه Unblob از طریق PyPI
pip3 install unblob
مخزن unblob را از گیتهاب کلون کنید
git clone https://github.com/onekey-sec/unblob.git
همچنین میتوانید آن را بهصورت دستی نصب کنید؛ فایلهای آخرین نسخه را مستقیماً از مخزن GitHub دانلود کنید.استخراج فرمتهای شناساییشده با استفاده از کتابخانه پایتون
کتابخانه منبع باز Unblob از استخراج محتوا از فرمتهای مختلف فایل در برنامههای پایتون پشتیبانی میکند. این کتابخانه از بیش از ۳۰ آرشیو، فرمتهای فشردهسازی و سیستمفایلها پشتیبانی میکند. لطفاً به یاد داشته باشید که برای استفاده از کتابخانه با تمام فرمتهای پشتیبانیشده، همه استخراجکنندهها باید نصب شوند. کاربران میتوانند از گزینههای مختلف برای سفارشیسازی رفتار کتابخانه استفاده کنند، مانند تعیین مسیر خروجی، عمق بازگشت، سطح جزئیات یا قالب گزارش. متد extract_chunk میتواند توسط توسعهدهندگان برای استخراج محتوای هر بخش به مسیر خروجی مشخص استفاده شود. در زیر یک قطعه کد نمونه آورده شده است که نشان میدهد چگونه میتوان از کتابخانه برای استخراج محتوا به یک مسیر خروجی در برنامههای پایتون استفاده کرد.
چگونه محتوا را با استفاده از کتابخانه پایتون به یک پوشه خروجی استخراج کنیم؟
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)
انجام تجزیه و تحلیل فایل ELF از طریق API پایتون
کتابخانه منبع باز Unblob به توسعهدهندگان نرمافزار امکان میدهد به راحتی فایلهای ELF را از باینریهای ناشناخته شناسایی و استخراج کنند و همچنین قابلیتها و ویژگیهای آنها را شناسایی کنند. این کتابخانه از فایلهای ELF ۳۲ بیتی و ۶۴ بیتی پشتیبانی میکند و همچنین معماریهای مختلفی مانند x86، x86_64، ARM، MIPS و PowerPC را پشتیبانی میکند. همچنین میتواند انواع مختلفی از فایلهای ELF را مدیریت کند، از جمله اجراییها، کتابخانههای مشترک، فایلهای شیء، دُمهای هسته و ماژولهای هسته.
استخراج متادیتا از طریق API پایتون
کتابخانه منبع باز Unblob امکان تولید یک فایل متادیتا را در برنامههای پایتون خود اضافه کرده است. کاربران میتوانند هنگام اجرای Unblob به عنوان ابزار خط فرمان، از گزینه --report استفاده کنند. این گزینه یک فایل JSON تولید میکند که شامل اطلاعاتی دربارهٔ فایلهای استخراجشده مانند مسیر، اندازه، نوع، magic، entropy و جزئیات تکهها است. کاربران میتوانند نام و مکان فایل JSON را به عنوان آرگومان به گزینه --report مشخص کنند. سپس کاربران میتوانند فایل metadata.json را با هر نمایشگر یا تجزیهکننده JSON مشاهده یا تجزیه و تحلیل کنند.