|
本帖最后由 yxleimeng 于 2024-4-3 08:32 编辑 4 W4 g) U. t- X s% u7 d
$ j8 X5 l6 G# K% @1 q8 @( V1 o4 L1 K5 L* ?
破解思路:
* h: Z+ |) L( X% z7 b0 m将NAND中的config分区复制到app分区的末尾,然后擦除config分区,这样重新启动系统之后,密码就恢复成了固件默认的aDm8H%MdA。
l' `6 k o9 g/ k. n用此密码登录系统后,将app分区备份到U盘,然后将之前复制到app分区中的config数据拷贝出来,这样就得到了config分区的数据。
7 m" w) s' e& [' T然后用默认密码进入系统中将config分区恢复,同时将lastgood.xml配置文件拷出来并解码,最终得到密码。: v9 [; Q9 r1 k
* J) z! M. @+ `. ?, g0 ~
这种方法适用于当前的绝大多数光猫。对于有编程器的人来说不是啥事,但是对于没有编程器的人来说,这种方法就显得尤为重要。一旦出现这种破解方法,今后厂商可能会更多的将uboot锁起来。: V6 k% k& M/ q; b. P$ R; s* x
7 p: M6 C. E t; m6 C
3 _! {+ x/ g8 ^' z7 O/ q
一、获取config分区的数据:
* [$ [2 d1 Z& [1 q4 T; R$ o- 清除RAM. i: l/ u' e5 Q. y
- mw.b 0x84000000 0x00 0xB00000. a! n q6 p' ~% W4 w, r% W
- / b, h( j; m" t* g o
- 将config分区的数据读入RAM
- {& a; X- p/ L/ l! ]6 O2 x& P3 M - spi_nand read 0x84000000 0x100000 0xB00000
& y* T) C' x5 k* D* q. }8 a& Z% { - 4 L# V" `6 H9 x0 ~6 M
- 擦除NAND末尾未使用的区域% H5 N6 t) ~5 M! A6 l: E" l* H0 S
- spi_nand erase 0xF000000 0xB00000
7 E- \: X# X7 C" v - 7 @. o0 Q! r+ a7 p K' ^
- 将RAM中的config写入NAND末尾的区域3 ~# \/ p1 }) n' [9 y5 V
- spi_nand write 0x84000000 0xF000000 0xB000003 m0 Q+ S" _( [; y
- ( w( @% I% p& p+ J/ c
- 将config分区的数据擦除:
3 {1 [$ L. R& p; S5 C: L - spi_nand erase 0x100000 0xB00000
复制代码 % ?5 v7 g8 a/ U
], k# }6 n. V: S$ r
二、分离config的数据并获取密码4 y8 {' y+ C" {$ h0 O! O
- 重新启动设备后,就可以用固件中默认的密码aDm8H%MdA登录系统。' Q, }2 \2 U" k5 r" j
- 准备一个FAT32格式的U盘,将busybox-mips_1.19.0复制到U盘中,然后插到光猫的U口中,然后将app分区(mtd10)备份出来。
+ o( O5 E. c" H/ G, s
( V# v) o& h* {, Q- a: Y0 A- 备份分区:
' R# i/ H3 Z7 S, e1 p - /var/mnt/usb1_0/busybox-mips_1.19.0 dd if=/dev/mtd10 of=/var/mnt/usb1_0/mtd10.bin&+ d9 A [) p% k, \- D: o. |
; Y3 u* R. t' H: z, }7 s7 y- 这条命令没有任何反馈,等待大约5分钟后,将此进程结束。0 J! `4 d& v6 b2 F' T9 W4 s& M
- ps列出进程 U v0 Z- |1 T
- kill 进程id结束进程" c# E! Z2 [# D! r E/ Y7 ^
- 然后输入umount /var/mnt/usb1_0/将U盘弹出。$ ~ L1 T$ }) Y- Q5 h! i
- " ^2 o+ T3 s: O$ h# i% f
- 将U盘在电脑上将刚才备份的mtd10.bin文件拷出来,用WinHex定位到0x7500000,长度0xB00000(11MB),将这段数据剪切出来重命名为config.bin,这个就是config分区的数据。
. s! w, L+ @, n' `" F - 在得到了config分区的数据之后拷贝到U盘,进入光猫,把数据还原。
4 q7 V" Z: R! j- R6 q5 i' A, y
% }6 K# S! s h4 y; U# S4 x; L- 还原分区:
* B2 @+ _- p( x% t - umount /var/config* D+ f' ^* N, l5 k7 p) x
- /var/mnt/usb1_0/busybox-mips_1.19.0 dd if=/var/mnt/usb1_0/config.bin of=/dev/mtdblock3&
7 `3 F% [3 Y1 `# \ - ; x" F! ~$ @4 p0 n5 ?- V3 w
- 大约等待2分钟后,结束掉此进程。然后重新挂载config分区。8 i# P5 @" R. E6 b" {
5 v7 u' b( Q0 @$ e0 o1 b, J" U- 重新挂载分区:
+ Q: k" v @, k1 | - mount -o rw /dev/mtdblock3 /var/config
" Z* V, ^: N: w
* G; l- k A; {+ a1 |/ _* Y- 分区挂载完毕,将lastgood.xml文件拷贝到U盘中。4 T8 v3 N S0 G
- cp /var/config/lastgood.xml /var/mnt/usb1_0/
5 h: `: v5 l7 S: V8 T' i0 V - umount /var/mnt/usb1_0/1 }3 X( V+ v) O; S, j) |4 I
' O2 t" g4 ?1 s; j' \- 然后将U盘插入电脑中,用cfg-cryptor.exe工具将lastgood.xml文件解码。
. a% g9 _3 G) h: K. U. W - cfg-cryptor.exe -de lastgood.xml4 ?. [% s8 i/ s7 K6 ^- O' C: S) W7 i6 T3 @
( z' w' Y+ o4 M6 i. T# W- 在解码后的配置文件中,搜索SUSER_PASSWORD,即可看到密码。SUSER_NAME是用户名。
. ?5 ~( U) _2 L+ [- ]9 a - <Value Name="SUSER_PASSWORD" Value="123456"/>
0 s) ^6 v' D) C: j$ ]/ s+ t - <Value Name="SUSER_NAME" Value="CMCCAdmin"/>
复制代码 * `- b* } H4 u
& V; m5 ?4 H8 i* p. b三、今后密码被修改的应对办法
! \* u* F5 p0 S% y9 v- 在上一步我们已经得到了config分区的数据,那么今后密码被修改,就不用那么麻烦了。
" n0 b4 @( U4 ?: }3 Q9 X% p @ - 准备好tftpd32.464软件,进入光猫uboot中,连上网线(千兆口即可),设置好uboot的IP地址,输入以下命令:
. C2 a. M- C" ~0 Z7 I! V
% f6 Z' B( g z/ A& U: x/ a- 清除RAM2 N& X2 |2 |4 X! S, u0 f
- mw.b 0x84000000 0x00 0xB00000
) P) H, t# H& B3 k. g$ { - 8 C, ?5 R" W/ k9 X+ O
- 将config.bin下载到光猫内存
/ q0 a3 i" r6 x" I - tftp 0x84000000 config.bin
; j* S& W' F9 t2 t! S* @+ x - # ]3 F+ E( A# U" U* f0 V! T1 N* W% \
- 将config分区的数据擦除: v' Y" D& e( K: W* `
- spi_nand erase 0x100000 0xB000009 E2 E5 \+ O& |3 y
% i B0 c) ^% d7 x3 ~- 将RAM中的config写入NAND的config分区% i, z6 l+ I) a1 J
- spi_nand write 0x84000000 0x100000 0xB00000
8 {$ ?3 c6 [: A* T1 l - 7 u4 r, T0 a+ _8 n9 y* @' _, M7 @
- 重启光猫后,配置文件就恢复到了之前,用之前的密码即可登录。
复制代码
$ y! c4 ?6 p$ J: o2 Y6 `0 b8 ~+ t2 }2 r5 ~, s/ V; l, z
9 C2 s2 _& k! s# W! Z |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|