2017-06-07 174 views
0

我正在使用zlib,並且解壓縮時遇到了一些問題。我嘗試解壓來到「膨脹」功能的數據包,但「膨脹」返回我-3。 00 00 00 ff ff的組合告訴我,數據被deflate算法壓縮。所以我嘗試使用解壓縮器參數MAX_WBITS, - MAX_WBITS30解壓縮數據,但它沒有幫助。何我能解決這個問題嗎? 數據例如:放氣數據解壓縮zlib

ab 17 03 01 0c 39 6d 77 78 bd 1b 14 2e 6e c5 ff 
51 8f 85 cc 76 30 52 98 ed 10 aa 73 ae 5b a4 df 
97 af 90 15 44 c3 74 10 de e6 1b 63 f2 ee a5 31 
24 c6 01 4b 18 a9 aa 6f 95 5f 3a c0 85 ed 62 48 
07 a9 0c d0 3e 97 d1 7e ca 59 42 15 47 c7 9a 75 
5a 4e 12 06 08 dc 22 45 89 c3 45 c0 fc ee 74 f3 
8b 76 26 c9 33 e5 5a dc d6 68 2c 11 14 bd b4 51 
cd 54 92 68 82 f1 ac aa bb 94 e3 91 9b 3c 77 1d 
e7 59 d7 e0 b9 e2 71 bb 05 f2 5c 9e 86 0e 22 b0 
76 7f 91 88 85 1b 53 b2 0c 0c be d4 6d 69 6e 41 
d6 61 c4 1a 1b d9 18 a0 24 48 1b c9 71 57 e2 d8 
53 40 95 05 d0 12 97 99 a9 42 f3 d7 09 56 49 96 
be e3 dd fa d4 1c 07 71 f4 dc 5e 18 a0 f4 e4 eb 
5a 58 32 86 e3 7b 42 d7 39 71 85 42 74 5a 6b 0a 
5f bb 89 dd 6d f1 fd ac f1 ba 92 3d e0 3f e6 48 
5a 80 b5 99 27 84 bb 31 0b e5 7e 71 e6 a6 4b 4e 
72 67 16 dd 45 2a 2e a2 bf c7 f4 66 de a4 5c cb 
9d 30 4c fb 34 44 3e 22 a6 0a 56 62 9a 71 df 94 
79 f1 53 88 59 85 73 65 55 6b 48 69 26 0d e7 2e 
1d 23 7b ad 85 47 51 d4 c1 a4 a6 b0 f1 06 c8 f0 
03 37 5f 00 9b 92 09 c4 89 83 9d 96 66 88 d0 f6 
c5 e1 d0 f6 c2 5a ce da b0 16 2e c3 b2 7f f1 38 
ac 7e 8c 8c 66 86 c2 14 65 24 e4 d2 70 73 58 46 
80 b9 3c a4 4d f7 1c b5 e2 7a 7f e5 d4 0b 8b 08 
26 6c 8c c1 3d 85 dc 0f 1e 3b cf da bf e2 1c 81 
63 03 94 b7 14 11 56 87 dd c1 2d eb 4f 3f 0a fe 
da 59 ad 89 60 eb 85 ce 6b 85 8f 33 da 33 11 fc 
8f a4 f0 a2 85 a4 c0 ba 6e 57 9d 24 d5 df 97 61 
24 8c 53 00 fd f5 c2 2f 7c a9 ec d2 42 3d 0c 81 
4a 5e ba a5 1a 24 b9 7f 8a df 88 8d cd f0 45 f0 
37 75 c2 a9 03 3a 5a c3 ed 2c b5 2d f4 43 81 4e 
c4 6f 18 f0 62 74 e4 c0 5a fa 1c 66 55 92 87 ca 
c5 a5 ac f2 46 4c 75 49 3b 3e 43 29 88 ee 9d 1f 
79 fe 61 37 24 66 2a 8f 1a 3c e0 3c c1 cc bb f5 
6a f9 54 49 19 52 45 43 a8 18 1c c2 f3 25 e3 73 
a6 4d f7 63 a8 b8 2c 69 fe 65 af 2a 4e e9 6d 62 
e5 86 2e 3c ae 2d 24 0d 71 f4 f7 1f eb 3d 6c 7e 
ee e5 16 e6 a7 e6 74 bf 89 e5 6a f0 97 04 e5 3d 
a7 1d 15 ad 9b 00 21 aa f2 44 93 18 49 c9 1a 30 
ba 3d e4 99 21 86 b2 2c 43 64 62 94 58 1a 3f 13 
bf a5 2d 29 3f 63 66 aa e2 2f e1 86 62 a2 8f 3d 
05 4c b9 99 21 33 ff 10 9c 28 ef 4e 33 de b6 b0 
86 e7 53 88 d0 f5 10 6f 39 2e ab f5 d2 fa 05 41 
b9 d9 01 ed 98 01 3a 3b 07 b0 e9 f5 0e 90 c2 84 
94 80 e9 f4 03 33 1c ea 10 37 68 7c 2b 29 2d 4c 
d0 e2 ea 21 c4 ef 58 a1 bb a3 81 07 77 f5 3e 2c 
a2 89 af db 08 47 ba d3 17 2e 1c b3 92 9c c4 de 
c0 27 bd 24 74 29 b3 69 1e 60 78 13 e0 49 c9 7a 
df 83 c9 86 cc 10 ce 2f d3 80 6d d9 61 f7 9b ee 
90 7f e3 b4 66 7a 66 8f 0b 1a 9e b9 6d 51 9c d6 
af 59 af 9f b9 9f 78 35 63 5f 03 4a d3 89 f7 71 
ab 23 52 e8 2b 91 53 7c 01 2e fd 59 25 e3 99 b0 
21 74 a6 dd 78 bb 48 5e 11 1e 9a 8d 93 a6 a0 a1 
6c 72 eb 73 af 44 76 11 3e a5 8c 02 42 9b 72 40 
52 7b 1a 66 e8 0f 6c 39 42 bf 14 04 2b 70 72 8f 
b2 43 9b 56 7e 43 1d bc 5d 78 60 ab b4 94 a6 f2 
00 fa 28 cd 7a 1e cf 8c f5 da 82 19 ba 11 4f 74 
0e c0 00 59 0b 60 a3 56 08 e0 6b 72 3b 33 f2 bf 
9a ae 76 80 a9 f4 d8 6b ef eb 52 a2 ca 20 a1 5e 
26 6f 69 40 4a da 91 e4 7b 10 42 52 6e 63 13 91 
68 6b 36 61 20 a9 6d e5 e5 04 50 00 eb b3 6d 10 
9e f5 47 36 ca c3 d2 76 23 56 71 13 4b b2 7c 5b 
b2 89 db 28 92 70 e1 f4 f5 b3 2e 9d 84 f5 87 3f 
c6 05 0b b2 c9 99 cc 5b c0 b6 cc 8b 3d 5d eb 01 
8f 7e 69 ac 95 bc fb 81 58 d5 01 76 a2 10 98 05 
bb 7a 84 73 80 c9 61 7a 6d ce d0 db e2 0f 8c 55 
73 ff ff 9c 20 3a 39 bb a9 3a df ab 35 a6 ae fb 
48 45 1c 5a 5e 7b 4b f9 39 f2 51 08 59 cc a4 8f 
59 ed d6 c9 e1 91 62 ec 5e 65 73 42 d7 ac 9b 67 
1b 43 41 e4 1b 93 86 2e 3d af a4 83 9b f6 32 7b 
bc e8 e4 60 3a 47 8e 3e 13 7d d3 74 1b 83 86 8e 
c4 01 70 21 a5 d5 5c f7 22 54 e0 af be 2c c1 66 
03 a0 fb 25 9c b1 90 dd 9d 78 a8 86 34 0a ee 83 
d1 63 30 6e 6f de 7d 52 e6 28 ac e3 09 ab 16 f9 
3b 1e fa 9f 28 dc f5 e4 bf 0f 1f 3a fc ec 60 b5 
6c 7b 80 de 08 0b c5 fe b7 46 d1 23 f0 74 b5 ca 
c3 85 77 76 1a 19 65 0c ec 0d a7 c5 61 ef fa 5a 
7b f6 d9 14 20 a7 1b 07 f2 0f 3f 5f a8 89 17 be 
78 e8 5a 1b 7c 5e 26 18 af e4 43 1d 54 d0 77 56 
c5 dc 19 16 3e 1d 08 58 8e 65 a1 87 c7 0a af b8 
b8 62 e9 f0 56 d3 f9 56 90 07 db 34 f6 71 78 73 
e9 10 14 e6 ee 8c 59 a4 97 a5 dd f3 6a 50 c6 9f 
d9 a0 d8 0c e4 12 f2 ed 2d 7e 92 8e 51 6b 7b b7 
36 53 33 76 a5 ab 85 95 f9 5e 0d 5f 64 65 00 07 
21 eb d0 ea c2 72 7d ab 91 b5 87 91 b8 ab 24 f6 
2b 7f 16 fc 42 00 00 00 00 ff ff 

代碼示例:

__int32 ZLIB::Decoder(unsigned __int8* PDU, unsigned __int32 size, unsigned __int32 out_buf_size, unsigned __int8 * out_b, z_stream_s & stream, bool & IsInit, unsigned __int32 mode, __int32 max_w_bits) 
{ 
    if (IsDllLoaded == false || PDU == nullptr) { return 0; }//if Zlib DLL was not loaded, or incoming packet is not cTCP  

    if (!IsInit) 
    { 
     SecureZeroMemory(&stream, sizeof(stream)); 
     auto res = InitZDecompressor(&stream, max_w_bits , "1.2.11", sizeof(z_stream_s));//initialize only one time 
     IsInit = true; 
    } 

    stream.next_in = PDU; 
    stream.avail_in = size; 
    stream.next_out = out_b; 
    stream.avail_out = out_buf_size; 
    stream.total_out = 0; 

    __int32 ret = 0; 
    while (stream.avail_in && ret == 0 ) 
    { 
     ret = ZDecompressor(&stream, mode); 

    } 
    return ret; 
} 

void ZLIB::ResetDecompessor(bool & isInit, z_stream_s & stream) 
{ 
    if (isInit) 
    { 
     ResetZDecompressor(&stream); 
     isInit = false; 
     memset(&stream, 0 ,sizeof(stream)); 
    } 
} 

回答

0

你的假設是不正確。這不是一個緊縮的流。

+0

你能解釋一下爲什麼嗎? – rooltex

+0

只有你知道你從哪裏得到這些數據,它可能是什麼。 –