前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MIPS-DIR645手动提取固件

MIPS-DIR645手动提取固件

作者头像
偏有宸机
发布2021-04-02 14:53:48
9560
发布2021-04-02 14:53:48
举报
文章被收录于专栏:宸机笔记宸机笔记

检索文件系统的magic签名

cramfs文件头特征为 0x28cd3d45

代码语言:javascript
复制
❯  strings DIR645A1_FW102B08.bin|grep `python -c 'print "\x28\xcd\x3d\x45"'`
#大小端依次检索
❯ strings DIR645A1_FW102B08.bin|grep `python -c 'print "\x45\x3d\xcd\x28"'`

检索squashfs文件系统

标志的squashfs文件头大致有七种,分别为:

代码语言:javascript
复制
sqsh、hsqs、 qshs、 shsq、 hsqt、 tqsh、 sqlz
代码语言:javascript
复制
❯ strings DIR645A1_FW102B08.bin|grep sqsh

进一步确定是否为squashfs文件

使用hexdump判断其文件头所在的地址

代码语言:javascript
复制
❯ hexdump -C DIR645A1_FW102B08.bin|grep -n sqsh

使用dd命令提取该地址为始向后的100字节,最后用file工具对提取出来的文件进行检测来确定是否为squashfs文件系统

代码语言:javascript
复制
❯ dd if=DIR645A1_FW102B08.bin bs=1 count=100 skip=1441936 of=squash

if

count

skip

of

文件名

提取大小

十进制的地址

输出文件

代码语言:javascript
复制
❯ file squash

手动提取文件系统

根据上一步的file命令可以知道该文件系统的大小为 5958022字节,那么我们就可以继续使用dd命令来对其文件系统的进行完整提取

代码语言:javascript
复制
❯ dd if=DIR645A1_FW102B08.bin bs=1 count=5958022 skip211=1441936 of=squash_file
#然后进一步对的对文件压缩方式进行查询,可以使用file命令加参数-m
❯ file -m filesystems-hsqs squash_file
#最后确定该文件系统采用的是LZMA格式压缩的,可以使用工具unsquashfs对文件进行解压
❯ unsquashfs -f squash_file
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 检索文件系统的magic签名
  • 检索squashfs文件系统
    • 进一步确定是否为squashfs文件
    • 手动提取文件系统
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档