|
本帖最后由 anysoft 于 2018-10-3 13:39 编辑 & R" V, P# d' V1 D+ K
7 }/ Z# k: E* v- \ `9 l$ O 在我上一篇帖子中提过,光猫其实和路由器一样。底包都是改版的openwrt,然后固件打包解包过程加了华为自己的结构和加密处理而已。光猫加入了驱动和对应程序。所以完全可以把光猫当做路由来玩,特别是当前的光猫配置越来越好,还能挂载USB。
& D" z3 F' A% ~9 @4 @! u+ k1 }
% m+ S' W& b) y }' U; Q8 y: x* E6 Y% H( g% A2 J; @# A# l
今天正题是如何备份光猫固件。华为光猫的刷机固件有自己独特的结构,常规的解包方式无用,看雪bxc大神分析了固件格式并开发了hwfw_gui。这个工具可以拆分华为固件,编辑内部文件。rootfs导出后是uimg文件 squashfs。
+ ?- {- F+ m7 z6 U( u t- e
+ u6 k+ |* n7 h! Z4 T5 L& c! V' H& I/ M# y
废话不多说直接上备份命令(路由器固件备份命令):1 l7 Z. U/ G, q; m, t. h
1、先获取、补全shell进入: |" u" s' Q# s! e# Y
* [! ]1 ^; j" i 本文不就演示如何获取shell了,自行研究(获取shell都不会那么后边也没有看下去的必要)
( Y3 A. X2 K$ X- h
$ n0 m% d9 k" v) T5 L 进入shell之后用户还不是root,可以用whoami命令查看当前用户,此时再执行su,密码:admin就变成root了。
/ _( V' }" S3 `; F% d$ J2、cat /proc/mtd 查看本机mtd信息
6 A+ ^' N" T8 y6 ~
7 f' _7 P' c! g M5 T1 {! a* b* P7 P7 j& r! _: {3 B3 g" S1 Q
所有的mtd设备和别名都一目了然
* P/ E" r5 j* n# q* F, N
1 }0 q* a0 I' }0 ], [: z( J3、df查看挂载点信息
1 G: |4 |3 z0 a
/ z' w/ v& L' n$ v: B# N, O) r5 l% N0 \0 Y$ r" i, F
; P* X& I9 f4 I5 _
此处要注意,很多人备份或者上传文件都用/tmp文件夹,这里tmp文件夹只有10MB无法存放大文件,所以不要备份到tmp,看哪个文件夹可用空间大就备份到哪里。我是用的/dev/shm文件夹,足够的空间。6 c% K1 Q( X F% ?# ]7 T5 S
! b7 [/ ?. P, r
4、备份每个dev
, J+ \. `6 H" n6 ~: obusybox dd if=/dev/mtd12 of=/dev/shm/rootfsA.bin
0 ?8 Z( e" c ?1 ?' c! M* ~6 _+ R q7 H7 v, R& g8 d+ s) v* M
7 ~ N0 c( O7 O7 G: O! v, Q这里各个分区备份出来后可以用hwfw_gui替换内部文件,或者直接通过还原命令在其他设备刷入。
' c. d' q R$ O- j8 r
2 z3 m) A+ O+ P" d2 ^8 n5 z [3 m; f8 F& L7 a7 }
& A; }6 Z% i5 w) g( a
5、tftp导出备份文件到电脑! Q& x6 c; \6 W
tftp -p -l rootfsA.bin -r rootfsA.bin 192.168.1.2. A: F+ F3 m5 y9 t% r
& _# K" |4 `2 B1 i
( n7 _7 M% f. Q7 c8 P
40MB文件,(bin固件直接导出rootfs.img是38.1MB,40MB是后边有FF的空数据)
4 U* {# W. ?! C: Z9 w3 @' `9 B _; z( ?, P
6、从备份还原
( h' S) x% N( F4 Rdd if=ubootA.bin of=/dev/mtdblock3
5 ]" I' _) e. P& q0 f或者1 ?+ l8 p! D+ i) Q% R1 A* N
mtd -r write /dev/shm/rootfsA.bin rootfsA
) a# s/ k0 _$ ?7 p: N
( F2 K( m$ g0 x% J8 f5 s8 R1 s- n1 r. B1 Q
1 r8 T9 D, W2 s
' K6 N1 z& E6 ^/ Z: x+ s
S- _+ v$ z" n9 f7 R& ]/ V0 G, \; S
/ ^: n f: R O; ?8 e" r
/ Y; }! `+ g# U' D+ ~
ultraedit查看如下:9 o- b- h+ }' H+ \* U# |) X- p! \
' @1 \" `+ C+ y; {" N: y; v
5 @+ [% [4 A9 {
hwfw_gui导出的rootfs.img3 d6 B0 I$ d9 b/ f; ~' \" U& t5 S
3 n0 U+ s' g& M0 P, U9 Z备份的rootfs( o$ y7 r& y% N% k9 Z
+ T5 B0 p, r- D |# L5 t( a" \% ^2 I4 }
- u! v; c8 w8 b2 \4 i1 J) \最后说一下,备份时候一定要确认你选的目录有足够的空间,备份完毕后可以df查看目录使用率是否达到100%,如果达到表示固件基本上没有备份完全。没备份完全的不要刷,刷了就会变砖。; G: B4 Y% \ M& Z2 n
8 n, \1 e2 r) D4 }2 d2 ~
5 q% ~. @8 K' w1 Z4 @3 E(PS一句 如果你备份的bin文件16进制末尾不是FFFFFF那么你基本备份失败,因为mtd一般都会比img固件大,所以不会完全写满mtd设备,这样备份出来的bin末尾必定是FF空段)
. e! H, I. n7 Q; |2 M, V
* `/ J+ |8 g( s9 I! h+ n3 i& }6 t% ?
/ w( B3 A, Z. E* z9 ~; H
# n/ a3 C, n1 K+ o ?, N; D参考来源:- A6 a7 x8 u) \: o
https://blog.csdn.net/chang198932/article/details/36435209, v+ g$ r$ Z+ g4 O
https://blog.csdn.net/kepa520/article/details/511954399 m9 H, ^# w+ @1 K7 y
http://man.linuxde.net/tftp6 b" ^3 |3 A: M2 F
; ? u2 d3 }0 ?! k5 q
& w& Y2 H/ T* I6 P6 q最最最后希望猫友可以帮忙备份一下 HS8145V的R018所有固件。拜谢!" Q, j6 J# R( [. k
q2 |% p# G: [) X
可以参考这个帖子回复" y3 u, O- G3 [* r! ~
2 G* O, V6 @9 P3 p# e- g& s
https://www.chinadsl.net/forum.php?mod=viewthread&tid=158559&highlight=%B1%B8%B7%DD
6 T' s' i: ]9 G
8 }+ v+ v; p7 z; t6 _- n$ d
( n# W1 i7 h. L9 A5 Y' O: ?+ `# d$ _
% S8 L4 j' I5 B& \. }
8 x2 f3 L, m" B2 M& ^, f% Y. G6 O
) j6 ~/ i6 n* A& @ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|