如何使用UnBlob从任意格式容器中提取文件

关于UnBlob

UnBlob是一款针对容器安全的强大工具,该工具可以从任意格式的容器中提取文件。该工具运行速度非常快,准确率高,并且易于使用。UnBlob能够解析已知的超过30种不同格式的文档、压缩文件和文件系统,并能够从中递归提取文件内容。

UnBlob是完全开源免费的,并提供了一个命令行接口。除此之外,该工具还能够以Python库的形式来使用。这些特性使得UnBlob成为文件/数据提取、分析和逆向固件镜像的完美工具。

工具特性

1、准确率高:支持使用自定义规则识别数据区块的起始偏移量,并根据数据格式标准自动计算数据区块的终止偏移量;

2、安全性高:UnBlob不需要使用高级权限即可执行,并自动将依赖的第三方组件升级到最新版本;

3、可扩展性强:UnBlob提供了一个API,广大研究人员可以自行编写自定义格式处理器和数据提取器;

4、运行速度快:UnBlob的运行速度非常快,默认使用多线程机制;

技术特性

1、UnBlob基于Python语言开发;

2、为了快速搜索文件中的代码模式,使用了Hyperscan

3、为了提取已识别的格式,使用了各种不同类型的数据提取工具;

4、针对ELF分析,使用了LIEF及其Pythonbinding

5、针对CPU密集型任务(例如熵的计算),使用了Rust来提速;

6、为了提供更美观的命令行接口,使用了Click库;

7、为了提供结构化的日志记录,使用了structlog库;

工具下载&安装

该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,使用下列命令将该项目源码克隆至本地:

git clone https://github.com/onekey-sec/unblob.git

然后使用Poetry安装所需的依赖组件:

cd unblob

poetry install --no-dev

接下来,根据对应的操作系统安装所需的数据提取器:

# Ubuntu 22.04

sudo apt install e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover img2simg libhyperscan-dev zstd

如果你需要使用squashfs的话,可以安装sasquatch:

curl -L -o sasquatch_1.0_amd64.deb https://github.com/onekey-sec/sasquatch/releases/download/sasquatch-v1.0/sasquatch_1.0_amd64.deb

sudo dpkg -i sasquatch_1.0_amd64.deb

rm sasquatch_1.0_amd64.deb

最后,请检查所有的依赖组件是否已安装完成:

工具使用

UnBlob提供了一个易于使用的命令行接口,我们可以直接传递一个需要提取的文件即可:

$ unblob alpine-minirootfs-3.16.1-x86_64.tar.gz

2022-07-30 06:33.07 [info     ] Start processing file          file=openwrt-21.02.2-x86-64-generic-ext4-combined.img.gz pid=7092

该工具将会创建一个新的目录,名称带有“_extract”:

$ ls -l

total 2656

drwxrwxr-x 3 walkman walkman    4096 Jul 30 08:43 alpine-minirootfs-3.16.1-x86_64.tar.gz_extract

-rw-r--r-- 1 walkman walkman 2711958 Jul 30 08:43 alpine-minirootfs-3.16.1-x86_64.tar.gz

此时,工具会递归提取出所有已知的文件格式,直到到达指定的递归路径层级为止(默认为10层):

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

UnBlob:【GitHub传送门

参考资料

unblob - extract everything!

ONEKEY - ONEKEY

Welcome to Python.org

Introduction to Hyperscan

LIEF

lief · PyPI

Rust Programming Language

Welcome to Click — Click Documentation (8.1.x)

structlog 22.1.0 documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值