|
本帖最后由 yxleimeng 于 2024-4-3 21:01 编辑
, o: r9 o7 n" J( s f& k8 e
5 n- {" ?2 l7 D& h& I/ p! e {6 D破解思路:
- o0 }6 s2 B4 ^3 p8 Y* r5 d将NAND中的cfga、cfgb分区复制到other分区,然后擦除cfga、cfgb分区,这样重新启动系统之后,就恢复成了固件默认的密码。4 ]! K7 u4 M0 b3 `8 c/ F7 j8 _
用默认密码登录系统后,将other分区备份到U盘,然后将之前复制到other分区中的cfga、cfgb数据拷贝出来,这样就得到了cfga、cfgb分区的数据。
/ X, X& s. R K0 }$ v: N. _# I然后用默认密码进入系统中将cfga、cfgb分区恢复,同时将lastgood.xml配置文件拷出来并替换掉密码。
) h0 I# f' m) M! {6 `
# q4 P: a. Y* E1 Z默认的账号密码:2 `9 V) i g9 `+ A* S8 |- x8 E
root
a# [, \) q l7 d( Z m!@qw34er, p) E+ `$ q6 L% |4 O4 F8 H8 \1 T) I* U
$ [3 t/ c9 `/ F; k
( N: q% ^! r0 v0 m. j x0 l- 一、获取cfg分区的数据:) {) h. e/ a" N0 [
- 清除RAM& G( C, W. y1 ^, x5 M$ ] b' l
- mw.b 0x84000000 0x00 0x200000 N V& Q, H, E% y) T: F/ x# m9 d$ n
- {/ I1 N4 M; M2 V7 N5 S5 \9 P- 将cfga分区的数据读入RAM
8 H# L: h0 _% i( q& X; g, { - nand read 0x84000000 0x260000 0x100000
3 }% \0 J6 R, w: S! X, T0 p - ; n$ e2 Q6 |7 X1 s V+ f4 s
- 将cfgb分区的数据读入RAM/ C" H6 l' T" G7 f( p) b/ \
- nand read 0x84100000 0x360000 0x100000: L- o3 V% z4 S" w& ?
% t5 }* A( H* V$ l7 O- 擦除other分区的数据
8 P7 k8 q+ {; k - nand erase 0xEC00000 0x1400000+ M0 i0 \1 u I7 ^" t8 E
/ C. E4 U9 a, K* P7 |" ~- 将RAM中的cfg数据写入NAND的other分区
; {4 A/ u9 w) f4 b - nand write 0x84000000 0xEC00000 0x200000
) H3 G; ^- _! o' X5 _ - 3 P5 P9 x4 X j' T; q+ o
- 将cfga分区的数据擦除:
* F5 y) B2 r0 k+ K. y - nand erase 0x260000 0x100000
% ~# n- u( T0 j* D/ Q8 E - 4 e- z& M3 T" ` f/ m2 ^4 k5 z, \! x
- 将cfgb分区的数据擦除:
* }8 E" _+ g' P6 I7 g! l5 u, | - nand erase 0x360000 0x100000
复制代码
$ t3 |0 e8 \/ x1 E6 t0 q0 H1 c+ a4 G9 l
- 二、分离cfg的数据并获取密码3 @% k X+ c4 ^( n. ^6 l
- 重新启动设备后,就可以用固件中默认的密码登录系统。
& V) s ?( a8 Y. l- q" W - 准备一个FAT32格式的U盘,然后插到光猫的U口中,然后将other分区(mtd14)备份出来。
, S. |# V3 @8 O9 ^, x6 i. ?
) ?3 P" w' G9 j3 V8 u( r% f- 备份分区:
/ V8 J- C4 ?* U- f; j - dd if=/dev/mtd14 of=/tmp/mnt/usb1/mtd14.bin
# E' j- o# Q$ Z% g - 等待备份完毕后,输入umount /tmp/mnt/usb1/将U盘弹出。
% C0 q. F7 _+ p ?- ^/ c
; U# u, ?/ `% H- 将U盘在电脑上插入,把刚才备份的mtd14.bin文件拷出来。) y4 Y* K. H# \, h& _! a# a. j# j
- 用WinHex将0x00-0xFFFFF这段数据剪切出来重命名为cfga.bin,这个是cfga分区的数据(大小为0x100000);
: }: ]! ]- O* P- ]4 A) M - 将0x100000-0x1FFFFF这段数据剪切出来重命名为cfgb.bin,这个是cfgb分区的数据(大小为0x100000)。# d; c. @) Z$ C2 L
- 在得到了cfg分区的数据之后拷贝到U盘,进入光猫,把数据还原。0 s: w: q* u8 Q7 ~
3 B1 t6 `5 p( D- 还原分区:1 D' g' n) }7 y- A% q
- umount /config/work# _: {6 K; w- z b) Y
- umount /config/worka
4 F& b" {9 V4 W4 x; y. a: E - umount /config/workb
' k6 s/ z: p1 b9 F* \ - dd if=/tmp/mnt/usb1/cfga.bin of=/dev/mtdblock4
/ m3 [ @, k- N; j - dd if=/tmp/mnt/usb1/cfgb.bin of=/dev/mtdblock5
5 a. x; m, w' a0 w - - U% X& {8 S: f! ]# A
- 等待还原完毕后,重新挂载cfg分区。6 I9 t' a: r+ j- r
1 t- L ?' \- w- 重新挂载分区:
' K F/ W4 z; w) Y# f4 c - mount -t jffs2 -o rw /dev/mtdblock4 /config/work
7 |6 w/ B" O! T' j' L - mount -t jffs2 -o rw /dev/mtdblock4 /config/worka
; L* K( f$ K, a6 T - mount -t jffs2 -o rw /dev/mtdblock5 /config/workb
) Y; b- T' i- n: e( t" f8 U - % e+ P) r( n! }3 B3 ?7 r
- 分区挂载完毕,将lastgood.xml文件拷贝到U盘中。! J* m, }7 q/ C' P
- cp /config/worka/lastgood.xml /tmp/mnt/usb1/
% i* B5 {# @# r [; l( K - umount /tmp/mnt/usb1/8 k5 I8 c- p6 m# v) s8 E. c: A9 T% G
- 然后将U盘插入电脑中,将lastgood.xml文件中的密码替换掉。
复制代码 + c5 W- e/ N0 f: W" j
9 `) m2 O5 i6 J9 `) C
- 三、今后密码被修改的应对办法( J" K' D4 q4 h W1 Y# n, O
- 在上一步我们已经得到了cfg分区的数据,那么今后密码被修改,就不用那么麻烦了。
/ k( @* M9 c+ y* @+ R - 准备好tftpd32.464软件,进入光猫uboot中,连上网线(千兆口即可),设置好uboot的IP地址,输入以下命令:* j; p9 [/ t! O( [* V+ G
9 i2 _3 S, R4 G) }' }0 _- 清除RAM
8 l* B& j+ \# _$ ^3 ? - mw.b 0x84000000 0x00 0x200000
6 Y/ P2 X( M( b. D5 x/ i( l0 B
0 v' r+ I5 R5 A7 k9 U4 b- 将cfga.bin下载到光猫RAM) \$ ^ m' f) [4 u" Q+ O
- tftp 0x84000000 cfga.bin; v) ^4 f$ r9 M& R
- + U `) x/ X. Q" b
- 将cfga分区的数据擦除:: m7 V* a: Z3 _* b V
- nand erase 0x260000 0x100000- c U- E4 }: V$ I% A+ b9 y/ P
- : M; j4 w# N( y' g* L! u
- 将RAM中的cfga.bin数据写入NAND的cfg分区
: ~8 C' j( J) x - nand write 0x84000000 0x260000 0x100000
* S9 i$ ~6 D; Z% M& q j
! B# h, h5 F5 S9 v& m k$ i2 T- 重启光猫后,配置文件就恢复到了之前,用之前的密码即可登录。
) s$ P# T( } u' {6 R - * |% R) m4 U, A( L
复制代码
( b4 D4 z* G$ O4 G0 ?: \
1 a6 B# w- ?: r3 O% E' n# y |
|