mon*_*ing 7 64-bit gzip 32-bit filesize gunzip
根据gz的具体情况,filesize保存在.gz文件的最后4个字节中.
我创建了2个文件
dd if=/dev/urandom of=500M bs=1024 count=500000
dd if=/dev/urandom of=5G bs=1024 count=5000000
Run Code Online (Sandbox Code Playgroud)
我gziped他们
gzip 500M 5G
Run Code Online (Sandbox Code Playgroud)
我检查了最后4个字节
tail -c4 500M|od -I (returns 512000000 as expected)
tail -c4 5G|od -I (returns 825032704 as not expected)
Run Code Online (Sandbox Code Playgroud)
它似乎击中了看不见的32位屏障,使得写入ISIZE的价值完全无稽之谈.哪个更令人讨厌,而不是他们使用了一些错误位.
有没有人知道从.gz获取未压缩的.gz文件大小而不提取它的方法?
谢谢
规范:http://www.gzip.org/zlib/rfc-gzip.html
编辑:如果有人尝试,你可以使用/ dev/zero而不是/ dev/urandom
| 归档时间: |
|
| 查看次数: |
2568 次 |
| 最近记录: |