1 . bin 文件背景
本文章逆向的 bin 文件 , 是从某大某飞的固件提取,TTL 串口连接电路板 , 查看启动日志
根据启动日志中的分区表将之分割为独立分区镜像
Creating 4 MTD partitions on "jz_sfc":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000200000 : "kernel"
0x000000200000-0x000000740000 : "root"
0x000000740000-0x000001000000 : "appfs"
使用 dd command ,截断 Squashfs bin 文件 , 也就是 root 分区:
dd if=xfp.bin bs=1 count=5505024 skip=2097152 of=root.bin
2 . bin 文件分析
打开文件 , 搜索魔术字段 hsqs , 定位到 superblock
Hex View 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00200000 68 73 71 73 77 01 00 00 17 35 E9 62 00 00 02 00 hsqsw....5.b....
00200010 13 00 00 00 04 00 11 00 C0 00 01 00 04 00 00 00 ................
00200020 43 17 86 07 00 00 00 00 80 B5 52 00 00 00 00 00 C.........R.....
00200030 78 B5 52 00 00 00 00 00 FF FF FF FF FF FF FF FF x.R.............
00200040 A0 9B 52 00 00 00 00 00 90 A5 52 00 00 00 00 00 ..R.......R.....
00200050 20 B3 52 00 00 00 00 00 6A B5 52 00 00 00 00 00 .R.....j.R.....
2.1 超级块 The Superblock
超级块是SquashFS归档文件的第一部分。
它的大小始终为96字节,并包含有关存档的重要信息,包括其他部分的位置。
Superblock 之字段一 【魔术数字】 , 字节数量 : 4
下图可以看到 , 前四个字节的 ASCII 码为 hsqs :
Hex View 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ascii
00200000 68 73 71 73 hsqs
Superblock 之字段二 【索引节点数量】 , 字节数量 4 :
Hex View 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00200000 77 01 00 00 w...
由于SquashFS文件系统 , 总是以小端序格式存储整数 , 所以 索引节点数量为 177 .
Superblock 之字段三 【修改时间】 , 字节数量 , 4 :