3 x; i" W& D& S' ^3 d: M+ z6 A首先看文件头0x00-0x3b8 P5 R6 H o4 E4 D2 R+ _- X- X1 P
其中0 v4 c$ I* A+ S3 w# {
0x09-0x0b 解压缩后配置文件大小. z! }: E! R0 b# R6 M4 Q
0x0e-0x0f 压缩后配置文件大小
3 ~1 \- `' Y- Q7 [% f0x14-0x1b 校验值 ~; f/ ]( v C, ~ c' {/ P; W! M
' l* Y" d* a* S/ [) i6 @
再看之后的数据,有规律的,都是以
3 t! @( j! [4 F. Q# V00 01 00 00 00 00 17 e5 00 00 18 2d开始& f* @+ A, b! b
其中17 e5 为本次数据压缩后长度
# Y% m% U' X5 c$ T y- O18 2d为下一压缩包开始位置5 W+ R% e8 S9 O& J" ^- Q K& | d
, e4 |6 c0 j- Q7 @' w( p由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库
4 |& |; A: L! F8 N# v4 A/ C' j3 o# e6 g1 V
我只是写了个程序通过Zlib把这些数据解开而已。. N+ Z! b& _) [% B4 C0 {, W
: r: S' g8 @( P* T% _5 v- f至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |