【发布时间】:2019-12-30 09:44:36
【问题描述】:
我有一组 .pdf 文件,使用 pdf-parser.py 时会给出:FlateDecode 解压缩失败。 zlib.error 解压时出错 -3:不正确的标头检查。见下文。
PDF Comment %PDF-1.4
PDF Comment %âãÏÓ
obj 1 0
Type: /ExtGState
Referencing:
<<
/Type/ExtGState
/SA false
/SM 0.02
>>
<<
/Type /ExtGState
/SA false
/SM 0.02
>>
<<
/Type/ExtGState
/SA false
/SM 0.02
>>
obj 2 0
Type:
Referencing:
[/DeviceRGB]
[/DeviceRGB]
obj 3 0
Type:
Referencing:
Contains stream
<<
/Filter /FlateDecode
/Length 1136
>>
FlateDecode decompress failed. zlib.error Error -3 while decompressing: incorrect header check
...
...
<<
/Producer (tx_pdf 15.0.130.501)
/CreationDate (D:20100309081052Z)
>>
ZLIB 标头(在 RFC1950 中定义)应该是:
CMF | FLG
0x78 | 0x01 - No Compression/low
0x78 | 0x9C - Default Compression
0x78 | 0xDA - Best Compression
在 010 编辑器中检查文件时,标题字节改为 0x78 和 0xC3。见图片:
有谁知道这些字节可能代表哪种压缩?我试图用谷歌搜索生产者 (/Producer (tx_pdf 15.0.130.501)) 没有结果。
【问题讨论】:
-
Cam 你分享其中一个 pdf 文件进行分析?
-
文件可能包含受限内容。直接发给你可以吗?
-
你可以但显然只有我可以分析,而不是这里的所有其他读者。我确实对 pdf 有所了解,但对 pdf-parser.py 不了解。此外,我这周不在办公室,下周之前只有有限的分析工具。尽管如此,如果您发送它,我会尝试提供帮助。您在我的堆栈溢出配置文件中找到了一个电子邮件地址。
-
一个示例文件已被转发...
-
我首先看了你的示例 pdf。显然,某些软件将其处理为某种 ANSI 编码的文本,并使用 UTF-8 写回该“文本”。这当然会扰乱每个二进制部分,例如Flate 编码的压缩流。我还没有机会检查这是否以可逆的方式发生(允许维修)。