-
-
[原创]华为光猫固件结构逆向分析(二)
-
发表于:
2016-10-27 17:22
20867
-
之前的文章实现了对华为光猫固件的基本解包打包操作,但是导出的rootfs无法直接解包(ps:7-Zip可以解包,但无法打包),其原因就是SquashFS镜像格式之前还有2层封装。
这篇文章就解析下固件项目数据的2层封装的结构(ps:不是所有项目的数据都有这2层封装,一般需要刷入flash的项目数据才有这些封装)。
先上图看看导出的rootfs的数据结构:
可以看出,在SquashFS镜像格式的魔法字"hsqs"之前还有148字节的数据。
文件头的"whwh"应该也是某种结构的魔法字,于是又分析了下vunpack那个工具,果然找到了相关的部分,这里就不多说了,直接贴结果:
enum _WHHDR_ItemType : uint32_t
{
whType_Kernel = 1U,
whType_RootFS,
whType_System,
whType_MiniSYS
};
typedef struct _WHWH_Header
{
//魔法字
uint32_t u32Magic;
char chItemVersion[64];
__time32_t u32Time;
_WHHDR_ItemType enumType;
uint32_t u32RearSize;
uint32_t u32RearCRC;
} WHWH_HEADER, *PWHWH_HEADER;
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!