ubidump
1.0.0
該工具可用於查看或提取UBIFS圖像的內容。
UBIFS是專門為NAND Flash芯片使用的文件系統。 Nand Flash在抹布中組織。可以刪除,附加到和閱讀擦除。擦除是一個相對昂貴的操作,只能進行有限的次數。
ubifs圖像包含四個抽象層:
每個抹布都包含有關刪除頻率以及其屬於哪個音量的信息。一個卷包含一個帶有鍵的b-tree數據庫:
這些inodes基本上是一個標準的Unix文件系統,帶有Direntries,常規文件,符號鏈接,設備等。
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
這將安裝一個帶有擦除尺寸為0x40000的設備的UBI圖像。如果您的圖像具有0x20000的塊塊,請使用fourth_id_byte=0x15 ,並使用第二個ModProbe行指定2048的PAGESIZE。
查看文件系統image.ubi中的/etc/passwd文件的內容:
python ubidump.py -c /etc/passwd image.ubi
在image.ubi中的所有捲中列出文件:
python ubidump.py -l image.ubi
從image.ubi中的捲中查看b-tree數據庫的內容:
python ubidump.py -d image.ubi
提取不支持的捲類型,因此您可以使用其他工具進行分析:
python ubidump.py -v 0 --saveraw unknownvol.bin image.ubi
請注意,UBI圖像通常包含壁球量,可以使用Unsquashfs或rdsquashfs等工具提取它們
使用以下方式安裝所需的Python模塊
pip install -r requirements.txt
或作為PIP包:
pip install ubidump
您可能需要首先為LZO手動安裝手術系統庫:
在Linux上:
apt install liblzo2-dev
在MacOS上:
brew install lzo
也許您需要像這樣構建Python庫:
LDFLAGS=-L/usr/local/lib CFLAGS=-I/usr/local/include/lzo pip3 install python-lzo
當您需要ZSTD壓縮時,需要安裝zstandard模塊。
master節點Willem Hengeveld [email protected]