Zlib膨胀意外的解压缩错误
Zlib inflate unexpected decompression errors
我已经用zlib膨胀算法挣扎了几个星期。
我想解压缩流行游戏Tibia的数据包。他们用zlib膨胀算法压缩了它。但似乎有些改变了。你能检查一下吗,也许你会发现我少了什么?
数据包压缩:-不能直接膨胀(其原始huffman固定编码-可能)
DA 22 A6 CB 10 99 5F AA 50 9C 9A AA 90 A8 90 05 B4 2F B5 44 41 C3 B1 28 D7 CA 50 53 8F CB B3 44 A1 3C 35 33 3D A3 58 C1 C8 44 CF C0 40 21 BF 4A 0F
使用逆向工程解压缩数据包:
B4 16 2D 00 59 6F 75 20 73 65 65 20 61 20 6A 61 63 6B 65 74 20 28 41 72 6D 3A 31 29 2E 0A 49 74 20 77 65 69 67 68 73 20 32 34 2E 30 30 20 6F 7A 2E
使用CyberChef deflate/php-delate函数用zlib deflate压缩的解压缩数据包:
db 22 a6 cb 10 99 5f aa 50 9c 9a aa 90 a8 90 95 98 9c 9d 5a a2 a0 e1 58 94 6b 65 a8 a9 c7 e5 59 a2 50 9e 9a 99 9e 51 ac 60 64 a2 67 60 a0 90 5f a5 07 00
数据在少数地方匹配,但总体而言不同。你知道可能是什么情况吗?
我附上了一张关于充气功能的图片:IdaPro 的截图
以下是按正确顺序排列的数据包:
- http://wklej.org/hash/6aee9e223f0/txt/-正确充气
- http://wklej.org/hash/bd371e7f510/txt/-正确充气
- http://wklej.org/hash/8f15935dc15/txt/-正确充气
这是无法充气的数据包。。。
CA059BC6043619009FC9FFFFE831
无法膨胀的数据包可能是较长压缩数据流的一部分,其他数据包在其前面和后面。您需要将所有数据包解压缩为一个流,才能成功解压缩。
你的第一个例子是deflate流的一部分,它引用了之前的数据。您需要该片段之前的所有压缩数据来解压缩该片段。您的最后一个示例(CA05…)也引用了前面的数据,因此它也是前面有压缩数据的较大流的一部分。
相关文章:
- 使用C++进行运行长度解压缩
- C++ 如何将数组值解压缩为函数参数
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 在 Qt(C++) 中使用 QProcess 解压缩 - 提取目录问题
- 浏览压缩文件与游览解压缩它们
- 如何在C++向量中解压缩多个值
- 解压缩 C 样式数组以及C++中的参数包
- 如何在 cpp 中解压缩数字,如果它们是使用 struct.pack(fmt, v1, v2, ..) 打包在 pyth
- 如何使用 Poco::ZIP 压缩/解压缩 zip 文件
- 在编译时解压缩数组扩展数据块 (C++11/14)
- 使用 RtMidi 解压缩 Midi 时间码
- 将参数包解压缩到 std::initializer_list?
- 解压缩可变模板参数
- 解压缩附加的压缩字符串
- 使用 AVX2 将 8 位从 32 位值 (__m256i) 解压缩到__m256的最快方法
- C++宏解压缩并加入
- 解压缩串联的 zlib 流而不读取下一个字节
- Zlib膨胀意外的解压缩错误
- VC++库在编译应用程序时错过?解压缩.obj :错误LNK2019
- (C++)解压缩 0 字节的文件时ZR_FLATE错误。解压缩源:"Zip Utils -clean, elegant...."