吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1488|回复: 0
收起左侧

[讨论] 电信光猫,四川X邑固件的一点分析结果。

[复制链接]
zdyz181 发表于 2023-1-27 09:17
本帖最后由 zdyz181 于 2023-1-27 09:27 编辑

机缘巧合,拿到了四川X邑光猫的一个新版固件。
CPU是博通方案的。具体型号这里不做阐述了。
但肯定不是BCM68580,目前网络上出现的BCM68580源码也只有威虎太岁大神发布过。
然而我级别太低,无法和威虎太岁大神对话。。。
flash为TSOP 48 nand。
经过简单的分析。现将一些分析结果部分贴出。
欢迎诸位大佬批评指正。
0——127分析第一行:54494D47473431314243393601000000本行定义了是什么固件,应该是包含了设备型号等。TIMGG411BC96  
image.png


第二行:4  5  6  7定义了固件头大小。
image.png


第二行:8   9   A   B,固件中是013C0014,转换成10进制20,709,396
image.png


选中128定位到20709396,正好到了下一个UBI的开头。说明第一个UBI+的选择范围是128-20709523
image.png

那么第一个UBI的选择范围是:128——20709503,通过CRC32的校验(这里不在复述CRC32的校验规则),得知选择范围正确。

至此,第一个ubi文件顺利提取。

第三行0——3是有意思的计算:例子中是013C0094,刚好比第二行8  9  A  B大了一个固件头。十六进制是80的大小。
image.png


第三行4  5  6  7,直接定义了第二个UBI+的大小。定位方法:1.先定位到13C0094(这里是第二个UBI的开头)再从当前位置,往下定位01440014。正好到了squashfs的开头。
再次校验CRC32。依然正确。
image.png


至此,第二个ubi文件顺利提取。

下面开始提取squashfs


第三行:12   13   14   15,定义了从0——第一个squashfs的大小。
image.png


028000A8=41,943,208,从0定位到41,943,208,正好是squashfs的开始。
image.png


第四行:0——3定义了第一个squashfs的大小。例子固件是4BF000,转换十进制是:4976640定位到028000A8,再定位4BF000,正好到第二个sqshfs的开始。
image.png


第四行的8  9  A  B标注了第二个squashfs的开始。
image.png


例子固件是02  CB  F0  A8。定位到02CBF0A8正好是第二个squashfs的开始。
image.png


第四行的C  D  E  F定义了第二个squashfs的大小。
例子固件的大小是00  7F  CF  17,转换十进制是8,376,087
先定位到02CBF0A8然后选择当前位置,往后7FCF16正好到固件结尾,
因为需要减去1
image.png

最后还有固件头的CRC32校验。这里不做复述。
至此,整个固件的结构清晰的展现在我们眼前。
按照常规的方法,我们需要解开UBI文件,或者squashfs文件。添加好内容。再封回去,校验好文件大小和CRC32。就可以WEB刷机了。
但是问题来了:
1.按照目前我的水平,无论如何也解不开这个UBI。。。。
即使算对了PEB,页大小也不行。
这一步即是难点也是重点,因为他是rootfs,
这一步走不通,下面无从谈起。

2.squashfs解包比较简单。binwalk -e 就可以了。封回去也比较简单。用的XZ压缩。

3.经过后期用beyond4把UBI和rootfs分区对比。发现虽然有很多重合的地方。但是内容和大小也是大相径庭。。。

总之,走到这里我已经黔驴技穷
如有熟悉博通的大佬或者博通的开发者看到,麻烦指点迷津。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 01:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表