Alat ini dapat digunakan untuk melihat atau mengekstrak isi gambar UBIFS.
UBIFS adalah sistem file yang dirancang khusus untuk digunakan pada chip flash NAND. NAND Flash disusun dalam penghapus . Hapusblocks dapat dihapus, ditambahkan ke, dan dibaca. Menghapus adalah operasi yang relatif mahal, dan hanya dapat dilakukan beberapa kali.
Gambar UBIFS berisi empat lapisan abstraksi:
Setiap EraSeblock berisi info tentang seberapa sering itu telah dihapus, dan volume mana yang menjadi miliknya. Volume berisi basis data B-tree dengan kunci untuk:
Inode pada dasarnya adalah sistem file unix standar, dengan Direntries, file reguler, symlink, perangkat, dll.
modprobe nandsim first_id_byte=0x2c second_id_byte=0xac third_id_byte=0x90 fourth_id_byte=0x26
nandwrite /dev/mtd0 firmware-image.ubi
modprobe ubi mtd=/dev/mtd0,4096
mount -t ubifs -o ro /dev/ubi0_0 mnt
Ini akan memasang gambar UBI untuk perangkat dengan ukuran ERASEBLOCK 0x40000. Jika gambar Anda memiliki blocksize 0x20000, gunakan fourth_id_byte=0x15 , dan tentukan halaman 2048 dengan garis modprobe kedua.
Lihat konten file /etc/passwd di image.ubi sistem file.ubi:
python ubidump.py -c /etc/passwd image.ubi
Sebutkan file dalam semua volume di image.ubi :
python ubidump.py -l image.ubi
Lihat isi basis data B-tree dari volume di image.ubi :
python ubidump.py -d image.ubi
Ekstrak jenis volume yang tidak didukung, sehingga Anda dapat menganalisisnya dengan alat lain:
python ubidump.py -v 0 --saveraw unknownvol.bin image.ubi
Perhatikan bahwa sering gambar ubi berisi volume squashfs, yang dapat diekstraksi menggunakan alat seperti unpreashfs atau rdsquashfs
Pasang modul Python yang diperlukan menggunakan:
pip install -r requirements.txt
atau sebagai paket pip:
pip install ubidump
Anda mungkin perlu menginstal pustaka sistem operasi Anda secara manual untuk LZO terlebih dahulu:
di Linux:
apt install liblzo2-dev
di macOS:
brew install lzo
Mungkin Anda perlu membangun perpustakaan Python seperti ini:
LDFLAGS=-L/usr/local/lib CFLAGS=-I/usr/local/include/lzo pip3 install python-lzo
Saat Anda membutuhkan kompresi ZSTD, Anda harus menginstal modul zstandard .
master yang lebih lamaWillem Hengeveld [email protected]