|
本帖最后由 yxleimeng 于 2024-4-3 21:01 编辑 . B! @$ o( w& |- Y
- W1 C, |+ I) t( r' k/ d; A4 @
破解思路:
) I, c2 J( d4 d将NAND中的cfga、cfgb分区复制到other分区,然后擦除cfga、cfgb分区,这样重新启动系统之后,就恢复成了固件默认的密码。: F! Q a5 x9 k: N/ `4 E
用默认密码登录系统后,将other分区备份到U盘,然后将之前复制到other分区中的cfga、cfgb数据拷贝出来,这样就得到了cfga、cfgb分区的数据。! C. ~5 E- ^' h
然后用默认密码进入系统中将cfga、cfgb分区恢复,同时将lastgood.xml配置文件拷出来并替换掉密码。 K/ D) t0 N+ D; ]( k" K
- Y2 x* ?4 {. U) K
默认的账号密码:
( }) p# }3 Q: groot
2 l: N! _5 V$ j9 k9 z" U) B6 q. t!@qw34er) t6 Q& J/ o8 u2 \( w
r+ }8 l/ ?, `0 V- _* S7 h0 \
9 J2 {! w [9 s! H2 D4 P& i0 l- 一、获取cfg分区的数据:
7 e: X8 c t4 G" Q& z' [; n - 清除RAM+ Y. Q4 q* D9 P" w# M# ^( S( @8 A& V
- mw.b 0x84000000 0x00 0x200000: J1 |/ f5 a$ f
% V7 o' H G% b2 \ K- 将cfga分区的数据读入RAM
' D7 @7 [5 I# M+ k8 R - nand read 0x84000000 0x260000 0x100000$ z, R8 `" p7 W z
- % S+ y! O8 U, R) n: w0 b! ?
- 将cfgb分区的数据读入RAM( _0 U/ h6 T. C& F: K3 I* h
- nand read 0x84100000 0x360000 0x100000
: q4 }, H/ v: h
) _5 F9 O; N) `' C- 擦除other分区的数据
5 \. ]* O8 U0 H) n4 Z; z) N0 w - nand erase 0xEC00000 0x1400000+ J4 d9 r/ f: G2 |
- 5 A0 k- _( X$ s9 B: J; `
- 将RAM中的cfg数据写入NAND的other分区
4 f1 ~! c1 U0 D3 p1 ]) C. { - nand write 0x84000000 0xEC00000 0x2000006 V+ u: Z2 }) W0 @6 W9 F9 q9 \ p
; k! k* Y9 k$ }* H+ B; e c- 将cfga分区的数据擦除:- ^ E+ m5 F; t0 f5 d# t- l, g
- nand erase 0x260000 0x100000
% @, T" Z+ J1 _
2 j5 g A9 J/ b; L- 将cfgb分区的数据擦除:
( c5 A8 U& v6 l! X; Y, n4 p - nand erase 0x360000 0x100000
复制代码
+ k' U+ Y( k- F6 B
: E& \' I% J9 n! V- 二、分离cfg的数据并获取密码
8 `7 [3 ~+ W3 l( p6 o' j( v8 x - 重新启动设备后,就可以用固件中默认的密码登录系统。4 r% l( L$ [& P: g
- 准备一个FAT32格式的U盘,然后插到光猫的U口中,然后将other分区(mtd14)备份出来。
1 X3 q0 L+ c$ J- j2 }: c. b5 M
: K/ n9 {9 \! c* k7 c- 备份分区:
# M" `5 F% Y! N; b# E - dd if=/dev/mtd14 of=/tmp/mnt/usb1/mtd14.bin9 L8 f1 \& f9 ?/ B* }
- 等待备份完毕后,输入umount /tmp/mnt/usb1/将U盘弹出。
8 h% v1 b2 b, ^+ W4 e$ f' N/ @
- }2 J$ a/ Y$ r- 将U盘在电脑上插入,把刚才备份的mtd14.bin文件拷出来。' i7 J. R7 Q e3 w
- 用WinHex将0x00-0xFFFFF这段数据剪切出来重命名为cfga.bin,这个是cfga分区的数据(大小为0x100000);# t: ? ?7 A! K" O6 f# K0 X
- 将0x100000-0x1FFFFF这段数据剪切出来重命名为cfgb.bin,这个是cfgb分区的数据(大小为0x100000)。/ {# Z8 Y2 ]3 T) c5 ^0 r( R' A' A
- 在得到了cfg分区的数据之后拷贝到U盘,进入光猫,把数据还原。
& W" z4 T$ C- \( }5 Y' y - / F2 }& ]; w. |. f9 T" x6 q
- 还原分区:
8 @, r5 c# Y- ` - umount /config/work+ K9 |& R1 d8 P* {* R! U
- umount /config/worka
- x9 v3 W5 C+ f0 V - umount /config/workb5 {3 E" s3 ^$ L- w4 C5 y& S
- dd if=/tmp/mnt/usb1/cfga.bin of=/dev/mtdblock4
! Q1 R, N% z: f" p9 e4 ^6 Y - dd if=/tmp/mnt/usb1/cfgb.bin of=/dev/mtdblock5
( W) r8 S9 h4 D
( Q% `6 V) S( J% k1 H9 b- H" @- 等待还原完毕后,重新挂载cfg分区。
6 x0 T. i; h p3 n! L" h' x - ) o" x8 H$ H) W; {5 H3 Z/ E
- 重新挂载分区:
4 r) @1 Z# i0 u4 M - mount -t jffs2 -o rw /dev/mtdblock4 /config/work" v! T' m9 q" l$ T( K/ g
- mount -t jffs2 -o rw /dev/mtdblock4 /config/worka
S$ I6 _; Y1 Y( S/ I( f- v - mount -t jffs2 -o rw /dev/mtdblock5 /config/workb9 |" F& H" K) L9 h( [
- . C+ v2 B# r2 g. }, x
- 分区挂载完毕,将lastgood.xml文件拷贝到U盘中。
9 H- g4 w4 P: V9 t# R - cp /config/worka/lastgood.xml /tmp/mnt/usb1/
6 q/ L' o$ ^0 ], M7 ^ - umount /tmp/mnt/usb1/0 H1 G" W$ X8 m) p
- 然后将U盘插入电脑中,将lastgood.xml文件中的密码替换掉。
复制代码 : X( u2 z& `1 N2 d0 ^! D
1 M$ N1 b, D& V Y7 P. B. l
- 三、今后密码被修改的应对办法0 r$ ~& c! _' M8 ^; K: ?
- 在上一步我们已经得到了cfg分区的数据,那么今后密码被修改,就不用那么麻烦了。
2 a8 ]& L! w z* J) [ - 准备好tftpd32.464软件,进入光猫uboot中,连上网线(千兆口即可),设置好uboot的IP地址,输入以下命令:
& t8 o F. \0 _! s- ] - ' `. \ z# Q, G7 y
- 清除RAM
6 G( F* x# K3 F! p4 P - mw.b 0x84000000 0x00 0x200000$ S) G, {4 `6 a- b! J# Y
' H! I: p' b5 k. `$ K1 I- 将cfga.bin下载到光猫RAM
+ z5 ]$ @" ~" J# z- t( g, k - tftp 0x84000000 cfga.bin
) c) I" D/ p" J3 B0 g/ b& ?% x - / x4 c/ F' Q$ C5 s
- 将cfga分区的数据擦除:
6 m' F, ~% p* A" m - nand erase 0x260000 0x1000009 u$ G4 B+ E$ {
^ f* i7 Y8 x8 B) p; N( ]+ z0 K- 将RAM中的cfga.bin数据写入NAND的cfg分区
4 }+ n7 `' x! d/ j0 w0 e9 N6 M7 v* o - nand write 0x84000000 0x260000 0x1000000 Q" I. y6 \' {, [
- ) Q4 _1 N3 _+ r: f" P+ p9 @8 A W- f5 _
- 重启光猫后,配置文件就恢复到了之前,用之前的密码即可登录。
; h2 F) ~( P$ @. W+ R# ~# H
5 g) }. @5 W+ Q
复制代码
' _- F* D: U$ m2 u- X& E
' F$ i- E: Z3 Z7 \% R |
|