2 }# y# c, O6 ]- R
首先看文件头0x00-0x3b
, w7 ] [/ ?% m4 `/ F' D0 \其中, c# ]7 s c, v6 M p
0x09-0x0b 解压缩后配置文件大小( u4 i+ A; N, d e* X8 }$ I1 b
0x0e-0x0f 压缩后配置文件大小) m" |8 N/ _7 p e' W
0x14-0x1b 校验值
* e8 c+ y% t$ Y& D! i* D. m
6 |7 I4 z6 U1 j' X3 n7 ~再看之后的数据,有规律的,都是以
! A8 Z6 L1 y- P0 V0 O2 f/ }00 01 00 00 00 00 17 e5 00 00 18 2d开始
2 Z: _' n! H$ q9 E其中17 e5 为本次数据压缩后长度
2 u, z5 ], X; K$ D8 d! c18 2d为下一压缩包开始位置/ P( L- l3 e5 ~: {
: _! V* H2 s3 u2 Z
由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库
7 R+ N# m- a3 b' ^ d Z
1 _- a. h w) L# V7 @+ Z8 Z我只是写了个程序通过Zlib把这些数据解开而已。6 _0 x; ?6 e g# u6 E1 Q
$ e7 N) Y" v; T( ~! y至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |