2017-06-07 18 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

あなたはあなたがそのデータをどこから入手したのか、それが何であるのかだけ知っています。 –

関連する問題