如何用其他数据替换 gzip 压缩数据并仍然有一个有效的 .gz 文件?
How to replace gzip compressed data with other data and still have a valid .gz file?
我正在试验。我用 hi
和 运行 gzip test.txt
创建了一个 .txt 文件来压缩它。
这给了我一个包含以下字节的文件 test.txt.gz:
1F 8B 08 08 E6 E8 3F 60 00 03 62 2E 74 78 74 00
CB C8 04 00 AC 2A 93 D8 02 00 00 00
用软件101编辑器,发现第一行是表头
CB C8 04 00
为压缩数据
AC 2A 93 D8
是“数据段的CRC”
02 00 00 00
是“未压缩输入的大小”
我正在尝试做的事情(我不知道这是否可能):我想将自己的角色作为“压缩”数据,但希望 .gz 文件仍然有效。
我尝试用 62 62 62 62
替换 CB C8 04 00
(字母 'b' 4 次)但是文件无效。然后我尝试用“bbbb”的CRC32值替换AC 2A 93 D8
,但文件仍然无效。我解压不了运行 gzip -d test.txt.gz
returns“文件意外结束”。
这可能是我正在尝试做的事情吗?如果是:我做错了什么?
CB C8 04 00
是一个有效的 deflate 流。 62 62 62 62
不是。 gzip 成员是一个 gzip header、一个有效的 deflate 流和一个 gzip 预告片。
Deflate 流在 RFC 1951 中定义。
我正在试验。我用 hi
和 运行 gzip test.txt
创建了一个 .txt 文件来压缩它。
这给了我一个包含以下字节的文件 test.txt.gz:
1F 8B 08 08 E6 E8 3F 60 00 03 62 2E 74 78 74 00
CB C8 04 00 AC 2A 93 D8 02 00 00 00
用软件101编辑器,发现第一行是表头
CB C8 04 00
为压缩数据
AC 2A 93 D8
是“数据段的CRC”
02 00 00 00
是“未压缩输入的大小”
我正在尝试做的事情(我不知道这是否可能):我想将自己的角色作为“压缩”数据,但希望 .gz 文件仍然有效。
我尝试用 62 62 62 62
替换 CB C8 04 00
(字母 'b' 4 次)但是文件无效。然后我尝试用“bbbb”的CRC32值替换AC 2A 93 D8
,但文件仍然无效。我解压不了运行 gzip -d test.txt.gz
returns“文件意外结束”。
这可能是我正在尝试做的事情吗?如果是:我做错了什么?
CB C8 04 00
是一个有效的 deflate 流。 62 62 62 62
不是。 gzip 成员是一个 gzip header、一个有效的 deflate 流和一个 gzip 预告片。
Deflate 流在 RFC 1951 中定义。