. R7 D( a; v) r: H3 K首先看文件头0x00-0x3b/ B, s! o* ^& e) H
其中" s" j( I+ C) @7 D/ I
0x09-0x0b 解压缩后配置文件大小4 m0 p3 ` W( V& b, j7 b; c: Z
0x0e-0x0f 压缩后配置文件大小6 n$ f G- [/ G3 l( P- @" o; _8 {; e
0x14-0x1b 校验值! Q& H1 l: }+ C8 q( ^
$ }5 [% J' ^$ l$ r! N
再看之后的数据,有规律的,都是以 . s& V/ B! j& E8 g00 01 00 00 00 00 17 e5 00 00 18 2d开始( e* o- r1 U n+ O
其中17 e5 为本次数据压缩后长度 8 r. h& X3 x% x/ ?18 2d为下一压缩包开始位置$ J% i8 C3 U6 W9 k
# i8 t+ Q0 @1 q& E. l. W i6 K由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库 ( m$ I1 i: x/ ?8 N; } , ], C' C& [% b7 ^% I9 k# z# G M+ M/ I我只是写了个程序通过Zlib把这些数据解开而已。 4 P/ E' N$ ~, _4 z# c) a6 H. U' E8 a, Y m. n8 u
至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。