宽带技术网

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5867|回复: 28

【教程】华为光猫备份分区固件(busybox dd命令)

[复制链接]
发表于 2018-9-21 16:53:54 | 显示全部楼层 |阅读模式
本帖最后由 anysoft 于 2018-10-3 13:39 编辑
  V7 ]. E. J3 z
. Q  Q4 q+ O+ L3 X* Y! Q7 @               在我上一篇帖子中提过,光猫其实和路由器一样。底包都是改版的openwrt,然后固件打包解包过程加了华为自己的结构和加密处理而已。光猫加入了驱动和对应程序。所以完全可以把光猫当做路由来玩,特别是当前的光猫配置越来越好,还能挂载USB。
, s# B' N* c0 o! Z
2 @8 y3 k- f7 H" @+ p7 c
% v6 J- X0 _5 N, t+ `
            今天正题是如何备份光猫固件。华为光猫的刷机固件有自己独特的结构,常规的解包方式无用,看雪bxc大神分析了固件格式并开发了hwfw_gui。这个工具可以拆分华为固件,编辑内部文件。rootfs导出后是uimg文件 squashfs。3 S/ a' ~: R6 Q- B
) T3 u" r$ m: G5 ^* y6 K0 ?; a2 X

9 X" p6 C( L" {  V* Q# z2 }           废话不多说直接上备份命令(路由器固件备份命令):2 [8 f) c1 ]0 r" j
1、先获取、补全shell进入# B& L7 V6 h  i. ~. ~1 o8 `5 N, r
9 v$ C* E+ ]/ D( Q7 o) z; F
本文不就演示如何获取shell了,自行研究(获取shell都不会那么后边也没有看下去的必要)
7 N- d6 X! a2 p* N, H3 `  _7 B
4 d6 W9 K6 G" D9 f. _8 t  进入shell之后用户还不是root,可以用whoami命令查看当前用户,此时再执行su,密码:admin就变成root了。
) @: j* e! x: r0 G( _) P2、cat /proc/mtd 查看本机mtd信息
& q0 @  C2 E0 J- g) u9 A" a+ `1 A
, e. G  A9 ?# C, T+ a0 p


- l3 ?1 r& N. s  L$ y8 ?4 J) H. c' T

所有的mtd设备和别名都一目了然

6 K( I" `: U8 ?

5 _' R; P9 G! U0 p/ p+ O5 _
3、df查看挂载点信息; D0 x/ V2 ]+ @5 o% g

7 f- t& _% t/ G% K1 q. J9 D
) @: z+ \4 O8 V% ]. g
9 S; ?9 x- c3 l9 m6 k9 p     此处要注意,很多人备份或者上传文件都用/tmp文件夹,这里tmp文件夹只有10MB无法存放大文件,所以不要备份到tmp,看哪个文件夹可用空间大就备份到哪里。我是用的/dev/shm文件夹,足够的空间。  L; Z% S1 [% e. N4 b2 c0 G
: ?' Q9 r% C5 ^2 c9 }7 F
4、备份每个dev
4 M- O, E+ U0 O) S( b# wbusybox dd if=/dev/mtd12 of=/dev/shm/rootfsA.bin
6 M6 }" A8 b. I+ ^) E9 C* B
- k3 W/ S. r% L( _" p+ q2 ~7 F
( C8 A$ J4 J0 G+ Z5 f

这里各个分区备份出来后可以用hwfw_gui替换内部文件,或者直接通过还原命令在其他设备刷入。

# {( A) t* D- G7 u3 Y: b- I
/ n5 v: r% H6 L" x
) n& u8 p; M& m
' G( w  D' p- M
5、tftp导出备份文件到电脑
. m% G' }, ]+ k; R3 E& p" Itftp -p -l rootfsA.bin  -r rootfsA.bin 192.168.1.2
8 |  c8 D2 N" N5 c# i+ P( h% k. ~& p, V' ~" b5 j0 z8 o# P! V

" v* G! c, _) J% z6 o40MB文件,(bin固件直接导出rootfs.img是38.1MB,40MB是后边有FF的空数据)8 H' r  c) X" p* \2 L
# q5 x  f: P' \- ?: c3 k
6、从备份还原/ \  D/ F+ h8 g
[size=18.6667px]dd if=ubootA.bin of=/dev/mtdblock3
7 D4 h1 r, r* ^2 K* W或者1 [) C$ ]2 X/ M. \! d
mtd -r write /dev/shm/rootfsA.bin rootfsA5 r% ^3 s6 d8 z* A

5 Q) r! R3 ?7 Q8 c: |' h* |
6 E/ e( S7 n2 m" ~* [2 p
. U8 w% r; `: ]* x1 m

& N/ Z& y9 j6 L, c* P. D

. D; u& I! h* @9 M* o0 {
+ V' P7 k  M( H; K

; [! x" n2 [9 R: o& g, nultraedit查看如下:/ s. Y- k& c( `  B' _

- n, C' Z9 T% h& B5 s8 _
( U2 C* o+ x- o8 khwfw_gui导出的rootfs.img
* Z  P. S* \9 t9 W. F- C; g9 Q% Z5 ]. @$ C# L' b, O3 @) d1 ~6 Z& E
备份的rootfs) h" @  G( u6 k: x

5 ^2 w4 e) K% s, j+ Z$ D- Z: Q- ]% N* t) m+ D& Q
/ }+ h6 [( G( E& @9 `6 G' l
最后说一下,备份时候一定要确认你选的目录有足够的空间,备份完毕后可以df查看目录使用率是否达到100%,如果达到表示固件基本上没有备份完全。没备份完全的不要刷,刷了就会变砖。
: s+ W: \, X, y2 i$ ^- u2 w8 a5 ?) I( G+ W' D  m
8 }- n) V( k  m  v* b: c  j
(PS一句 如果你备份的bin文件16进制末尾不是FFFFFF那么你基本备份失败,因为mtd一般都会比img固件大,所以不会完全写满mtd设备,这样备份出来的bin末尾必定是FF空段)
- B- ^% C, {) z9 u
/ P. \; o5 R$ m$ s# C" F" ?7 P
9 r7 ]' S( Y/ T: D
2 F& r/ x2 }: ^7 ^$ e+ f) w( z
8 u; `" P) p+ D# d" l; B9 n
参考来源:/ k2 k. e2 s  J6 A9 l' Q8 }0 e
https://blog.csdn.net/chang198932/article/details/364352094 P) }2 y) g/ O0 A: A
https://blog.csdn.net/kepa520/article/details/51195439: ?; p7 ^- u6 a! o  R- e
http://man.linuxde.net/tftp0 Y9 m3 h9 V& f/ N$ w: S0 a
1 C5 O( V& w$ g. J' q
9 V8 Q! [- z4 g7 `8 r( T& K3 r
最最最后希望猫友可以帮忙备份一下 HS8145V的R018所有固件。拜谢!# I/ D$ @% M8 a
) O: T% r4 L, s4 o0 g
可以参考这个帖子回复! r! a2 W5 j. o& I9 @

- [" S$ d" e  ?4 x5 v) @( {5 r+ ~
http://www.chinadsl.net/forum.php?mod=viewthread&tid=158559&highlight=%B1%B8%B7%DD' h9 q% ^! |& c9 I+ c0 i
: |/ v# T* W1 W+ c

2 G8 a6 z- a+ M* R( c! I3 y5 U6 h7 v1 m) U! o- m

" ~6 |# b% s8 T, L( d/ I; V- c5 j" J8 v2 T  M( N* Y

' ~9 `) w2 X& t

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2018-9-21 18:26:47 | 显示全部楼层
你QQ号多少,我上次备份了的/ |, U. Z0 h. y& X
发表于 2018-9-21 20:40:23 | 显示全部楼层
感谢分享
: \/ @+ f. k) @3 w! G) |) t可是我导出来的R017无法用hwfw_gui打开,是什么回事呢?

点评

备份出来的是hwfw_gui内部的rootfs,而不是刷机包bin。 无法直接备份出原始的刷机包的。要自己再用hwfw_gui拼凑。 大哥比方,华为固件是windows的ISO安装镜像,我们备份的就像ghost备份。只能从备份还原方法刷其他  详情 回复 发表于 2018-9-21 21:12
 楼主| 发表于 2018-9-21 21:12:26 | 显示全部楼层
naim1 发表于 2018-9-21 20:40
" T5 K3 P; X8 v1 `$ Y/ I感谢分享" R* b' Y+ Y; ?. K# r, w- |" P
可是我导出来的R017无法用hwfw_gui打开,是什么回事呢?
+ h& C8 J  @$ J2 f  M
备份出来的是hwfw_gui内部的rootfs,而不是刷机包bin。0 _  V: p( j1 b: T& M+ o8 i5 V
无法直接备份出原始的刷机包的。要自己再用hwfw_gui拼凑。6 p) e0 j: O  s
大哥比方,华为固件是windows的ISO安装镜像,我们备份的就像ghost备份。只能从备份还原方法刷其他机器备份的部分,而不能直接使能工具刷。
发表于 2018-9-21 21:39:36 | 显示全部楼层
华为的固件提取制作都比较简单,想要一些简单的功能也可以通过写个.SH 来解决。那位大神能搞定中兴烽火的固件编辑就好了
发表于 2018-9-21 21:46:58 | 显示全部楼层
本帖最后由 yecunbo 于 2018-9-21 21:48 编辑 ( q6 s; ~- d) z. f  a

- m- k6 J0 o! h& S9 P/ R经过尝试可以备份但是无法恢复进去,我有R18版本的8145v可以备份给你,加W X: yezi860061交流学习!
发表于 2018-9-22 12:24:32 | 显示全部楼层
谢谢分享,学习了
头像被屏蔽
发表于 2018-9-23 18:36:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2018-9-23 23:00:47 | 显示全部楼层
942250037 发表于 2018-9-23 18:36
( m. R4 L' O! k, V1 P备份末端FF删不掉
1 W1 h5 Z5 @; G" T3 ^
用16进制编辑器可以删除的 不是直接delete键和backspace  通过右击编辑删除1 P( A% X! B4 b" r7 J
用winhex或者 ultraeditor 软件使用教程可以问度娘
头像被屏蔽
发表于 2018-9-28 19:02:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|宽带技术网 ( 粤ICP备15054574号 )|网站地图

粤公网安备 44152102000001号

GMT+8, 2019-5-26 23:34 , Processed in 0.225644 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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