|
本帖最后由 yxleimeng 于 2024-4-3 08:32 编辑 / s3 N3 j- [9 v! Q8 i' d
( |- `, V. g+ @- }; u. i破解思路:
' i/ C. ~1 A/ M9 j5 Z- g将NAND中的config分区复制到app分区的末尾,然后擦除config分区,这样重新启动系统之后,密码就恢复成了固件默认的aDm8H%MdA。
7 d# z. I* A J. ~. a8 I1 L5 C用此密码登录系统后,将app分区备份到U盘,然后将之前复制到app分区中的config数据拷贝出来,这样就得到了config分区的数据。/ l: G+ U/ f0 J
然后用默认密码进入系统中将config分区恢复,同时将lastgood.xml配置文件拷出来并解码,最终得到密码。: a" e z0 u! A% G! b: N
1 I5 f% g0 |6 f# c3 g9 O/ a
这种方法适用于当前的绝大多数光猫。对于有编程器的人来说不是啥事,但是对于没有编程器的人来说,这种方法就显得尤为重要。一旦出现这种破解方法,今后厂商可能会更多的将uboot锁起来。; v# C" s4 s' e5 x7 u. {
) e$ B2 k+ {3 |- U
3 `1 t9 P) U# f- I) \; j# |4 y4 I
一、获取config分区的数据:
6 T+ x, r; v b! e$ j- 清除RAM
. ^: |- [0 J% e0 F6 \2 a' ] - mw.b 0x84000000 0x00 0xB00000
! Y+ z3 O/ a. u. K+ o5 V - 8 a. ^0 O3 [3 `6 g2 h
- 将config分区的数据读入RAM& [ T2 P2 A1 |! P, n1 X z
- spi_nand read 0x84000000 0x100000 0xB000005 m: s1 o) O% E1 U/ I3 b- ~, v! }
/ n R, D/ d# }- 擦除NAND末尾未使用的区域
0 `2 X3 r3 ?& |+ ] - spi_nand erase 0xF000000 0xB00000
: t( c0 ^- p2 x' k6 c) f - 4 M& W2 P5 E/ n" n! l" z
- 将RAM中的config写入NAND末尾的区域 c( k T2 F5 m; o
- spi_nand write 0x84000000 0xF000000 0xB00000# o! c s! B1 ?$ X
9 m0 m' }( j/ K( F- a0 Q* F- 将config分区的数据擦除:2 e# a9 X5 J" R
- spi_nand erase 0x100000 0xB00000
复制代码 & f. R6 I" ?8 ?9 k7 N; T
, C9 L. g5 J) a8 I. V% X* ~二、分离config的数据并获取密码
2 e$ r# S- @ Q( T( t- 重新启动设备后,就可以用固件中默认的密码aDm8H%MdA登录系统。
8 u. t* O8 Q; W4 @1 ~/ R; z- c h - 准备一个FAT32格式的U盘,将busybox-mips_1.19.0复制到U盘中,然后插到光猫的U口中,然后将app分区(mtd10)备份出来。9 c) r: {% m4 \8 A
- / p- N' e5 H, Z/ \4 q6 ?
- 备份分区:) I( t! l9 W7 i. L7 l% k# b- L
- /var/mnt/usb1_0/busybox-mips_1.19.0 dd if=/dev/mtd10 of=/var/mnt/usb1_0/mtd10.bin&
7 L0 E+ e: [" j( l
. t/ l- f, T! |+ y& u- 这条命令没有任何反馈,等待大约5分钟后,将此进程结束。: t; _3 T$ t3 s5 `# H- ]* e' A6 h9 p, p
- ps列出进程
9 i" _$ v1 S/ Y - kill 进程id结束进程
. J* e$ Q7 V6 E/ C - 然后输入umount /var/mnt/usb1_0/将U盘弹出。
3 z' Z, C0 d) c7 C7 f' ^ - 5 q" b# | |0 D0 d8 k; N% m
- 将U盘在电脑上将刚才备份的mtd10.bin文件拷出来,用WinHex定位到0x7500000,长度0xB00000(11MB),将这段数据剪切出来重命名为config.bin,这个就是config分区的数据。
) K0 z& N7 p. m. z - 在得到了config分区的数据之后拷贝到U盘,进入光猫,把数据还原。
Z+ h$ }$ C6 h5 n
, }* u) _* }% k% y+ f9 V5 b- 还原分区:
/ ]$ K$ a: g! G! ]' j. l - umount /var/config4 E% M( D9 v' x( D
- /var/mnt/usb1_0/busybox-mips_1.19.0 dd if=/var/mnt/usb1_0/config.bin of=/dev/mtdblock3&' y% B7 y) f' m- L! q! K7 \1 w
- 2 K0 R: }4 L5 r; R0 v! b: f
- 大约等待2分钟后,结束掉此进程。然后重新挂载config分区。+ y! B6 Z0 t8 T; [. p% ^. i
' F6 A4 Q3 e& E8 a* q- 重新挂载分区:! \' t5 y; N& u7 h2 t% o
- mount -o rw /dev/mtdblock3 /var/config& b g4 ~/ d7 [
- 9 W# x9 D3 a: E. c+ T
- 分区挂载完毕,将lastgood.xml文件拷贝到U盘中。2 ?- r8 _/ T" s5 G% J
- cp /var/config/lastgood.xml /var/mnt/usb1_0/
2 z! F. X" j9 Q/ i! H# X# R - umount /var/mnt/usb1_0/
c$ G, W' ]. z+ ?+ v - 0 D# a- a p, b5 ~" y
- 然后将U盘插入电脑中,用cfg-cryptor.exe工具将lastgood.xml文件解码。+ a# D( g3 }) C, e! c7 P4 e& ~! x9 n
- cfg-cryptor.exe -de lastgood.xml
2 _9 u3 x8 W; r/ G - 2 d) p& `+ o4 f1 Y1 ~. S D
- 在解码后的配置文件中,搜索SUSER_PASSWORD,即可看到密码。SUSER_NAME是用户名。
$ a; W" @5 o# E6 B x: E - <Value Name="SUSER_PASSWORD" Value="123456"/>4 F0 z/ E$ g7 k) }; e" z
- <Value Name="SUSER_NAME" Value="CMCCAdmin"/>
复制代码 ' x* \3 n0 l+ ^3 g( n
6 w- `* t+ @3 g& w* U# O
三、今后密码被修改的应对办法/ U% @. {! ?6 u& P8 N9 C; ]0 Y) J
- 在上一步我们已经得到了config分区的数据,那么今后密码被修改,就不用那么麻烦了。# }- O$ r8 i% L* z2 a
- 准备好tftpd32.464软件,进入光猫uboot中,连上网线(千兆口即可),设置好uboot的IP地址,输入以下命令:8 v& g6 [8 K0 i2 R0 U5 a% o/ ~
. Z, C1 z5 |% n. r; I+ z- 清除RAM
% }) K7 o' K3 a1 k9 x - mw.b 0x84000000 0x00 0xB00000- t" C g, l1 M5 ], S
- , Z2 M3 j' C R1 e" G" O
- 将config.bin下载到光猫内存
1 R' z$ p. v9 v& J - tftp 0x84000000 config.bin; J$ b8 Y2 c: q
, p6 v* w3 g2 q& ]. d- 将config分区的数据擦除:
* r6 J' @; r0 F0 Y - spi_nand erase 0x100000 0xB00000
& i7 @! `( C. e9 X3 t8 N - ; r- a% E; O4 K1 V, {+ t+ v, u
- 将RAM中的config写入NAND的config分区
- W7 h. e8 V- c; t3 M - spi_nand write 0x84000000 0x100000 0xB00000
5 h: Y$ A: D+ n - , c$ h1 Q6 [; L# I
- 重启光猫后,配置文件就恢复到了之前,用之前的密码即可登录。
复制代码 5 r' ~" Z/ f6 g( H0 o" i
% M; s) D* ~6 K' J2 ]
1 W* t, Y* [( o5 y- m& Y3 H |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|