' u1 ~$ a5 D4 [( S% z首先看文件头0x00-0x3b7 l8 \" z* H& H5 [, [
其中- {! W2 e$ R7 H0 i0 {1 b# D
0x09-0x0b 解压缩后配置文件大小$ ^ u, \5 ?( S( P
0x0e-0x0f 压缩后配置文件大小
. l, P1 h& o, \6 u0x14-0x1b 校验值; E9 P) ?# U& u" U6 E
/ i, k+ j2 o# j/ p再看之后的数据,有规律的,都是以
! d5 M3 m$ h" T/ b0 E00 01 00 00 00 00 17 e5 00 00 18 2d开始
( Y& c# r* J& U: `; L其中17 e5 为本次数据压缩后长度
" a/ Z* Z7 H3 x1 D2 y1 v' k18 2d为下一压缩包开始位置 f3 h2 Z) r u% H/ T: ^- G8 f# Q
+ |7 o8 \& R8 `, u/ K0 B8 H8 M由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库
9 O2 X4 e9 O0 s# J
# w' y% v- P! D- }) ]% M& E# b9 d3 P我只是写了个程序通过Zlib把这些数据解开而已。
) O, u7 a7 j! C5 ] O
6 Z; W4 U [1 m0 v; J9 T至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |