|
本帖最后由 yxleimeng 于 2024-4-3 21:01 编辑 7 L( N' c% @6 l
/ l5 J9 K5 r5 g7 `9 }# {/ b破解思路:
( D( \. C E: G! m$ b. \. {1 O4 z将NAND中的cfga、cfgb分区复制到other分区,然后擦除cfga、cfgb分区,这样重新启动系统之后,就恢复成了固件默认的密码。
0 f6 H- H4 B, @用默认密码登录系统后,将other分区备份到U盘,然后将之前复制到other分区中的cfga、cfgb数据拷贝出来,这样就得到了cfga、cfgb分区的数据。8 W2 ^3 M% v! Q6 f
然后用默认密码进入系统中将cfga、cfgb分区恢复,同时将lastgood.xml配置文件拷出来并替换掉密码。5 ~6 j. w3 B2 M4 g8 P
. ^8 s# `$ {5 Q" w" ]
默认的账号密码:( _9 h$ ? h a; H; L
root! G& m* P. Y) o N9 a. o5 X7 e0 s" z* w
!@qw34er
" c5 p0 C# M" g/ A' r5 a0 \) Q n$ q# x* y: d
0 b- i0 A" `' ~% }# f
- 一、获取cfg分区的数据:+ ]1 i5 l% T. m
- 清除RAM
5 v L8 b6 Y; D$ \" F - mw.b 0x84000000 0x00 0x200000& m% n) h, p( G% \0 @
- i9 G, {) e( g; |, L- 将cfga分区的数据读入RAM
( W5 D; o' M& J) G# [/ ^7 ?& u3 Y - nand read 0x84000000 0x260000 0x1000009 M6 l/ L7 s0 j" O% G j& k
- 2 {7 H, E" S+ C) `% \% J+ h0 u5 T$ N
- 将cfgb分区的数据读入RAM
& o4 I: o/ s# E1 L2 ^ - nand read 0x84100000 0x360000 0x100000: s; P! }2 x3 J
- $ X' X7 Z# z: S$ w3 p+ ]1 N
- 擦除other分区的数据
- ~3 Y% l& w& f. _" L" P! O& y8 k - nand erase 0xEC00000 0x1400000
& H3 N2 r( f& c
4 u8 X d) ?# K5 {1 l- 将RAM中的cfg数据写入NAND的other分区
# @+ F4 B4 V- g7 L - nand write 0x84000000 0xEC00000 0x2000005 A' f5 H5 p2 @4 ^/ y0 q2 m
- , e0 d8 y# w: r6 [( G0 `7 O
- 将cfga分区的数据擦除:
% g# J0 k( m. w1 d9 P5 ]/ V5 o( Z - nand erase 0x260000 0x1000006 g P/ e/ a! W6 a1 A( `
- : w7 j% M) J. A: k* U9 z
- 将cfgb分区的数据擦除:
8 a9 p% e& X* e) f0 i - nand erase 0x360000 0x100000
复制代码 ) j2 ^: F6 d$ e# G
- X0 e3 m7 M9 } |- 二、分离cfg的数据并获取密码
4 Z6 _6 I) p/ q - 重新启动设备后,就可以用固件中默认的密码登录系统。
( F0 M7 b- ?2 z9 i) R - 准备一个FAT32格式的U盘,然后插到光猫的U口中,然后将other分区(mtd14)备份出来。
) D: E, Q8 j4 e2 r4 o - 4 }/ b# q( O) P; Z3 m
- 备份分区:& B6 ]8 o$ T) E4 Q: e5 S
- dd if=/dev/mtd14 of=/tmp/mnt/usb1/mtd14.bin' N# I4 [1 _; s+ w6 U) W/ T8 A2 D
- 等待备份完毕后,输入umount /tmp/mnt/usb1/将U盘弹出。
& ~7 N |- M e - : v- A5 A2 B) y+ y( y- l: A
- 将U盘在电脑上插入,把刚才备份的mtd14.bin文件拷出来。+ Y8 Y6 i3 M( M8 A3 o
- 用WinHex将0x00-0xFFFFF这段数据剪切出来重命名为cfga.bin,这个是cfga分区的数据(大小为0x100000);! p r# {1 l5 O# h
- 将0x100000-0x1FFFFF这段数据剪切出来重命名为cfgb.bin,这个是cfgb分区的数据(大小为0x100000)。
2 l% n# a% Z9 s - 在得到了cfg分区的数据之后拷贝到U盘,进入光猫,把数据还原。
& }. p2 e. U: ~$ _% n( k - 3 Y# y6 ]9 h, z t
- 还原分区:
4 p! l- [7 x& r+ ? - umount /config/work
8 Q6 E* t2 M% _& x - umount /config/worka
. }. ^* v# D; f' Y+ v - umount /config/workb
) x4 `" J* C. d6 E - dd if=/tmp/mnt/usb1/cfga.bin of=/dev/mtdblock4+ p: Q- t+ Q3 z* ~- C
- dd if=/tmp/mnt/usb1/cfgb.bin of=/dev/mtdblock5- h+ b4 U& S b) w& ?2 U* a
- ' g# ^3 q2 x0 u6 [
- 等待还原完毕后,重新挂载cfg分区。 @: F+ c e4 K1 c
- + M6 O- v$ g+ a& c8 H4 i
- 重新挂载分区:. X3 {% _3 m; L; @
- mount -t jffs2 -o rw /dev/mtdblock4 /config/work
4 y- V1 L- h8 j! D. w+ i! g - mount -t jffs2 -o rw /dev/mtdblock4 /config/worka6 y3 J9 S! _* K& [3 D9 x
- mount -t jffs2 -o rw /dev/mtdblock5 /config/workb2 t7 Y9 n6 x) f( M" Z. s
- " q; D0 y2 M3 ^- |, w
- 分区挂载完毕,将lastgood.xml文件拷贝到U盘中。
8 r7 ^5 U9 T! r( ]* U2 f - cp /config/worka/lastgood.xml /tmp/mnt/usb1/
7 t( W+ L" A5 n0 @7 }7 l5 K - umount /tmp/mnt/usb1/
) }% J+ A3 H5 j% Y3 y) F - 然后将U盘插入电脑中,将lastgood.xml文件中的密码替换掉。
复制代码
* u( ?' t# B# T6 R# k. ?9 `, o6 K; v- ?9 v5 v
- 三、今后密码被修改的应对办法
. |. d- m; W6 v' z- [ - 在上一步我们已经得到了cfg分区的数据,那么今后密码被修改,就不用那么麻烦了。/ e" i# N$ d' g& W# R9 {6 l5 y3 i% D
- 准备好tftpd32.464软件,进入光猫uboot中,连上网线(千兆口即可),设置好uboot的IP地址,输入以下命令:
) r, R1 D- ]; R
$ g, l$ h' o7 n8 Z9 [. J- 清除RAM }6 g( r7 p6 |; `6 G
- mw.b 0x84000000 0x00 0x200000/ b7 F& x& I) x; [6 \) T
$ y, a, y4 d% h& k0 k, h9 ?& {- 将cfga.bin下载到光猫RAM5 j( t4 `/ U: k0 X) u9 K
- tftp 0x84000000 cfga.bin* ^3 n( R! h1 H. a% M: ?
- 1 } q+ w7 H0 n2 x! C
- 将cfga分区的数据擦除:
% H0 v9 B9 O! O S4 U - nand erase 0x260000 0x100000- k& F- [( \- ]! m7 z" g/ n6 J
/ ^2 x3 [) k* ^! l- 将RAM中的cfga.bin数据写入NAND的cfg分区% G+ \6 F3 w8 ~. ^
- nand write 0x84000000 0x260000 0x1000001 v6 h/ O4 Q& U: J8 a: t& C
- " \5 k. a) B6 ?
- 重启光猫后,配置文件就恢复到了之前,用之前的密码即可登录。
# E( ~4 ^3 D( S) P+ F - 6 Q9 B: M0 A/ g( h* v$ D( O% O5 G
复制代码
$ K9 ?" j0 E9 o2 U8 C' w/ [5 Z
+ u! ?" w) W8 U/ ]3 j |
|