2 q. _5 r2 I8 ]& |
首先看文件头0x00-0x3b- W. Z7 ^( E. v$ G0 \$ H, m
其中
( G; e) Q$ \7 Y0x09-0x0b 解压缩后配置文件大小) F) T! b3 y2 U, Z5 J! |4 C
0x0e-0x0f 压缩后配置文件大小
0 j! t: _. K2 i& s' k# M0x14-0x1b 校验值
3 T, o; H) d6 S$ d% Y1 [$ H5 R+ {: ]% k! w
再看之后的数据,有规律的,都是以
# L6 {' ^; z0 }# F9 N00 01 00 00 00 00 17 e5 00 00 18 2d开始
; v1 z7 m* l% O) W* h% c7 ~其中17 e5 为本次数据压缩后长度0 @, n2 ~6 ?' i' A! I0 b# z
18 2d为下一压缩包开始位置" `! l- o; y/ j: G7 i
' ] s% k6 A; C2 L* B9 @0 n
由此可见,整个cfg是由原有明文cfg进行分段压缩后产生的,分段规则为每次取明文数据的65535个字节进行压缩为一个分段,压缩方式采用Zlib库7 z" D! \* T& l& c x
! f: n; z1 X) B
我只是写了个程序通过Zlib把这些数据解开而已。9 Y' T& ^9 v& B. Y6 p, ~
- u" C& K- r* j0 `6 |( u, |7 o至于那个校验值目前还没有弄明白算法,如果弄明白了,我们就可以自定义cfg压缩然后通过WEB管理界面还原的方式写入路由,这样随便电信封23,21都无所谓了,我们自己就可以直接解封了,如果谁能弄明白那段校验值的算法,请告知造福大众。 |