是否可以在PDF文件中仅损坏一个页面?

时间:2016-03-11 15:58:18

标签: pdf hex

在包含许多页面的PDF中,是否可能只有一个页面被破坏?

我已经做了一些挖掘,似乎找不到任何东西,所以我甚至不确定这是否可能,想知道是否有人知道它。如果有可能我怎么能再现这个呢?我已经完成了一些编辑十六进制值的实验,但它总是会使整个pdf文件损坏。

1 个答案:

答案 0 :(得分:0)

PDF是一个复杂的对象图。你有点简化

document
|
+ lots of objects with different purposes
+ page tree 
  |
  + .. some page
       |
       + content stream ("page description language")
       + resources

现在,正如@mkl和@Setasign所提到的那样,你可以在这个网络的序列化格式中犯错。

在具体文档中,页面引用,内容流引用,内容流内容,内容中的资源引用,资源内容......可能是失败的原因。要进行调试,您需要PDF引用的副本,无效文件和良好的PDF解析器/浏览器工具。

通过盲目地破解文档中的十六进制来重新创建失败很可能会因为以下原因而失败:

  • 对象的序列化格式被编入索引,因此在页面中间添加/删除字节不会仅损坏页面,而是损坏文档。
  • 盲目地改变一些价值可以破坏任何(结构)内容,而不仅仅是页面内容。您必须限制仅更改绑定到/ Contents条目的项目的内容。这是再次熟悉PDF知识的地方。

简而言之:您不太可能通过在PDF中危险地更改/添加/删除十六进制来重现页面呈现错误。

就像你在程序中遇到运行时错误一样,现在想通过添加/删除字符来重新创建另一个程序中的错误......