0
私はzlibを使用しており、圧縮解除にいくつか問題があります。私は機能を "膨らませる"ために来るパケットを解凍しようとするが、 "膨張する"は私に-3を返す。 00 00 00 ff ff
の組み合わせは、データがdeflate
アルゴリズムによって圧縮されていることを教えてください。だから私はデコンプレッサーパラメータMAX_WBITS
、 - MAX_WBITS
、30
でデータを解凍しようとしましたが、助けになりませんでした。私はこの問題を解決することができますか? データ例:データ圧縮解除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));
}
}
理由を説明できますか? – rooltex
あなたはあなたがそのデータをどこから入手したのか、それが何であるのかだけ知っています。 –