: c6 Q7 ]3 W7 l' Z; P
首先看文件头0x00-0x3b
3 T9 I+ p! [5 v- J; k6 s0 h其中
; x, b8 J, c2 J! m4 }' L3 x0x09-0x0b 解压缩后配置文件大小
' D! t; D+ t9 Y$ z# I7 @! o0x0e-0x0f 压缩后配置文件大小
9 m, T0 S0 p3 A& c6 F& V, A0x14-0x1b 校验值
/ X3 m' h1 Y* w6 Y- O& f# g. J, X
! z# ]& {+ C h* F再看之后的数据,有规律的,都是以7 V5 B3 R \$ N3 D; I3 w
00 01 00 00 00 00 17 e5 00 00 18 2d开始1 y& U$ o4 R; ?' D1 k- r8 ^
其中17 e5 为本次数据压缩后长度
) U' K/ @ z; o' f* J/ |3 ^18 2d为下一压缩包开始位置0 E! Z$ Q1 ]) C9 {2 G9 s
+ ~, m! t; m; b$ h由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库2 U3 q% \% g; I' J0 ~" @
% }9 `; y! d z6 e/ [. g. U, [
我只是写了个程序通过Zlib把这些数据解开而已。" c4 H3 X. T! I" K# J8 ^* v3 I4 ^
% \* m5 Z3 K2 Q2 p% Y
至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |