首页
社区
课程
招聘
[原创]华为光猫固件结构逆向分析(二)
发表于: 2016-10-27 17:22 20866

[原创]华为光猫固件结构逆向分析(二)

bxc 活跃值
6
2016-10-27 17:22
20866

之前的文章实现了对华为光猫固件的基本解包打包操作,但是导出的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;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 3
支持
分享
最新回复 (7)
雪    币: 251
活跃值: (108)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
学习,这个厉害啊
2016-10-28 12:19
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主把固件放上来,我也看下啊
2016-11-2 15:07
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
1、固件中项目的顺序有严格规定吗?比如kernel可以放到rootfs之后,甚至最后吗?
2、hwfw_gui  1.0.5具备将mtd镜像(删掉空白)重构固件功能没?
2017-6-7 23:30
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主厉害,对华为光猫固件逆向这么深,国内论坛第一人。
2017-8-14 19:36
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
6
fnto 1、固件中项目的顺序有严格规定吗?比如kernel可以放到rootfs之后,甚至最后吗? 2、hwfw_gui 1.0.5具备将mtd镜像(删掉空白)重构固件功能没?
1:可以,好像顺序没有影响
2:可以实现,目前没精力弄
2017-8-14 20:55
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主知道怎么封装固件吗?
2017-12-6 10:55
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个头部数据是指哪一段哦。具体是哪一部分数据的CRC哦
2019-10-19 20:13
0
游客
登录 | 注册 方可回帖
返回
//