9 q; n9 F+ u1 u4 o. E首先看文件头0x00-0x3b4 V# E& k; a/ o: v. z g3 S
其中& }% f" Y+ x5 f. u6 _0 u4 w
0x09-0x0b 解压缩后配置文件大小
# K9 C6 f, ?1 t' a" G( g0x0e-0x0f 压缩后配置文件大小- U3 T$ i d0 o) I4 E
0x14-0x1b 校验值
3 g' H+ s" Q) |; T6 Z/ E8 s; k# d( i7 T, e6 _% F" ?
再看之后的数据,有规律的,都是以# i3 i$ q& s; [
00 01 00 00 00 00 17 e5 00 00 18 2d开始
& v+ q+ R" g" ~9 I" b1 X其中17 e5 为本次数据压缩后长度
t* Q* Q$ }2 y+ r# E: s18 2d为下一压缩包开始位置
8 t; x: U% T" i5 H
2 b1 U% N, [7 e& G由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库; w4 {7 D, U: G* Q
% I2 P, O3 `5 W+ m/ o- [) d% A我只是写了个程序通过Zlib把这些数据解开而已。% I) D. J& E- ?- H/ C- r! r
9 ~. S7 C- I* g. ~) U( l至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |