9 s/ s5 D- y2 x2 m# `
首先看文件头0x00-0x3b
- m' |4 Q# S8 i+ H其中) j5 {2 k. C5 n7 t7 u
0x09-0x0b 解压缩后配置文件大小3 d$ X1 y+ T8 t) D
0x0e-0x0f 压缩后配置文件大小+ h0 H( G ^- \- ]& D& J, B, O
0x14-0x1b 校验值
: `$ {3 x# B J5 U" h) A* w' V
, p/ ^& n& M7 y6 X1 }, L& E6 C5 D. ?再看之后的数据,有规律的,都是以" g/ w3 Y" N' ?' m. K
00 01 00 00 00 00 17 e5 00 00 18 2d开始/ A% X! ?8 s- `* O; S- j4 M
其中17 e5 为本次数据压缩后长度+ T) N. d9 h0 U& U
18 2d为下一压缩包开始位置
: b8 } G/ Y; N6 ]/ \6 P4 V
5 x% L2 l- L7 [& Y! O1 r由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库 u2 J! {1 c3 r) Z
2 z6 D' x$ e3 P2 A
我只是写了个程序通过Zlib把这些数据解开而已。! |* _* g5 z i w, L+ P
1 W9 h. c/ U3 V
至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |