欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

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

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

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


至此,已经解析了84字节的数据结构,还剩下64字节的数据结构未解析。

观察了下所有带有whwh魔法字的导出项目,发现这64字节的数据也是始终以27 05 19 56开头的。
初步断定这是另一种结构的魔法字,于是gg搜索了下0x56190527(其实之前没想到搜索魔法字,而是在解包的文件里搜索,最后定位到uboot,发现uboot有对这个结构的详细操作,于是逆向之,后面基本逆向出来90%左右的结构,结果发现网上就TM有现成的),发现这个魔数是uboot的uImage的头结构里的成员。
最后在uboot的源码里的include/image.h找到该结构的详细定义:
#define IH_MAGIC	0x27051956	/* Image Magic Number		*/
#define IH_NMLEN		32	/* Image Name Length		*/
/*
 * Legacy format image header,
 * all data in network byte order (aka natural aka bigendian).
 */
typedef struct image_header {
	uint32_t	ih_magic;	/* Image Header Magic Number	*/
	uint32_t	ih_hcrc;	/* Image Header CRC Checksum	*/
	uint32_t	ih_time;	/* Image Creation Timestamp	*/
	uint32_t	ih_size;	/* Image Data Size		*/
	uint32_t	ih_load;	/* Data	 Load  Address		*/
	uint32_t	ih_ep;		/* Entry Point Address		*/
	uint32_t	ih_dcrc;	/* Image Data CRC Checksum	*/
	uint8_t		ih_os;		/* Operating System		*/
	uint8_t		ih_arch;	/* CPU architecture		*/
	uint8_t		ih_type;	/* Image Type			*/
	uint8_t		ih_comp;	/* Compression Type		*/
	uint8_t		ih_name[IH_NMLEN];	/* Image Name		*/
} image_header_t;


image_header_t的大小正好是64字节,这样148字节数据结构全部解析完毕。
HWNP_GUI的源码过段时间会更新这次的分析结果,关注github获知最新信息。

上传的附件 00.png
01.png
hdr.png
hdr2.png

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功