: j6 v( d v: ^6 N' b
首先看文件头0x00-0x3b
( n9 p; E, \/ x- L& [2 v' O其中
$ V' f- G0 v& o, c; W* _0x09-0x0b 解压缩后配置文件大小, B' f/ m/ @7 }, V- [2 x% M% c8 h
0x0e-0x0f 压缩后配置文件大小6 F4 v' K; R% e8 J6 g7 M
0x14-0x1b 校验值
, P$ Z8 I+ {/ ~7 E5 U6 e; i
: G& M% A& j; S5 ?. l再看之后的数据,有规律的,都是以
* |8 a, V6 ^$ O8 m0 M5 i$ j00 01 00 00 00 00 17 e5 00 00 18 2d开始9 c" k# u& p+ N' T' O' U7 v" v1 I; p
其中17 e5 为本次数据压缩后长度
& W0 a# o3 X8 B; K r) I% E* s- w18 2d为下一压缩包开始位置
! N6 K& V6 r- ]/ u6 i |" w5 O3 q0 _/ J9 u9 _7 H; X
由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库
. E, [7 d: ]5 p: z& [4 N T# o7 K, w+ z b/ p% ] X
我只是写了个程序通过Zlib把这些数据解开而已。- t, V% D; d) g! c, h$ U
/ P0 Q1 e$ a+ B/ \& X至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |