& [ v. z! [) y. H1 O: \) B
首先看文件头0x00-0x3b/ S P! D( s( k3 h# N; L* b
其中$ x9 L0 T; ^: \6 x. T
0x09-0x0b 解压缩后配置文件大小" r5 A( x: A$ @ r+ a
0x0e-0x0f 压缩后配置文件大小
( J8 B" w0 B, ^ X5 P/ I0x14-0x1b 校验值- b1 ^! Z3 C% E& o/ q
0 o V2 t5 K i& t) s) h
再看之后的数据,有规律的,都是以8 E1 j* s0 w6 {( x6 M: Y
00 01 00 00 00 00 17 e5 00 00 18 2d开始
* K+ o9 M0 }' f其中17 e5 为本次数据压缩后长度
# ]- g h3 [5 H9 k' c" J18 2d为下一压缩包开始位置, f* J1 S% x# ^3 e# O5 [9 m; ~
7 W* a4 N7 R2 a, W3 ^/ P; d% Y由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库
6 U$ R* y8 \0 E6 s$ `0 u4 i$ J" T2 ?! l
我只是写了个程序通过Zlib把这些数据解开而已。) b4 A4 Q) N# T w' h
5 Q0 W" T4 x1 }' x, \至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |