前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用UnBlob从任意格式容器中提取文件

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

作者头像
FB客服
发布2023-03-29 15:48:59
1.4K0
发布2023-03-29 15:48:59
举报
文章被收录于专栏:FreeBufFreeBuf

 关于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环境。接下来,使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/onekey-sec/unblob.git

(向右滑动,查看更多)

代码语言:javascript
复制

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

代码语言:javascript
复制
cd unblobpoetry install --no-dev

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

代码语言:javascript
复制
# Ubuntu 22.04sudo apt install e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover img2simg libhyperscan-dev zstd

(向右滑动,查看更多)

代码语言:javascript
复制

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

代码语言:javascript
复制
curl -L -o sasquatch_1.0_amd64.deb https://github.com/onekey-sec/sasquatch/releases/download/sasquatch-v1.0/sasquatch_1.0_amd64.debsudo dpkg -i sasquatch_1.0_amd64.debrm sasquatch_1.0_amd64.deb

(向右滑动,查看更多)

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

 工具使用 

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

代码语言:javascript
复制
$ unblob alpine-minirootfs-3.16.1-x86_64.tar.gz2022-07-30 06:33.07 [info     ] Start processing file          file=openwrt-21.02.2-x86-64-generic-ext4-combined.img.gz pid=7092
代码语言:javascript
复制

(向右滑动,查看更多)

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

代码语言:javascript
复制
$ ls -ltotal 2656drwxrwxr-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

(向右滑动,查看更多)

代码语言:javascript
复制

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

 许可证协议 

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

 项目地址 

UnBlob:https://github.com/onekey-sec/unblob

参考资料:

https://unblob.org/ https://onekey.com/ https://www.python.org/ https://www.hyperscan.io/ https://lief-project.github.io/ https://pypi.org/project/lief/ https://www.rust-lang.org/ https://click.palletsprojects.com/ https://www.structlog.org/

精彩推荐

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于UnBlob 
  • 工具特性 
  •  技术特性 
  •  工具下载&安装 
    • (向右滑动,查看更多)
      • (向右滑动,查看更多)
        • (向右滑动,查看更多)
        •  工具使用 
          • (向右滑动,查看更多)
            • (向右滑动,查看更多)
            •  许可证协议 
            •  项目地址 
            • 参考资料:
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档