【问题标题】:Steganography between PDF objects or after the %%EOFPDF 对象之间或 %%EOF 之后的隐写术
【发布时间】:2013-08-25 03:20:17
【问题描述】:

1) 我看到有些人致力于在 PDF 对象之间隐藏数据。 他们告诉这个方法有效,但最大的缺点是 acrobat reader 在关闭窗口时要求重新保存文件。

我不明白他们在 PDF 对象之间隐藏信息是什么意思。 请我需要你的帮助:)

2) 我还看到有人在 %%EOF 之后隐藏信息,并被告知这不是解决方案,因为签名未应用于需要功能的元数据。

我也不明白他们对本主题中的元数据的含义?

我参考了这个链接How to hide text in an PDF file?

最好的问候,

李斯特。

【问题讨论】:

    标签: pdf pdf-generation steganography


    【解决方案1】:

    1) 我看到有些人致力于在 PDF 对象之间隐藏数据。他们告诉这个方法有效,但最大的缺点是 acrobat reader 在关闭窗口时要求重新保存文件。

    我不明白他们在 PDF 对象之间隐藏信息是什么意思。

    通常,您的 PDF 是一系列 PDF 对象,前面有标识数字和将这些数字映射到它们在 PDF 中的位置的交叉引用:

    ...
    2 0 obj
    /WinAnsiEncoding
    endobj
    3 0 obj
    <<
    /Type /Font
    /Subtype /Type1
    /BaseFont /Courier
    /Name /F001
    /Encoding 2 0 R
    >>
    endobj
    4 0 obj
    <<
    /Type /Font
    /Subtype /Type1
    /BaseFont /Courier-Bold
    /Name /F002
    /Encoding 2 0 R
    >>
    ....
    xref
    0 17
    0000000000 65535 f
    0000014476 00000 n
    0000000017 00000 n
    0000000052 00000 n
    0000000205 00000 n
    ...
    

    当 PDF 解析器解析一个对象(例如对象 2)时,它们通常只在交叉引用中查找关联的值(这里在对象 2 的情况下是 17 ) 并从第 17 个字节开始读取文件,首先需要对象和世代号 (2 0),然后是标签 obj;他们将该标记之后的所有内容解析到匹配的 endobj 标记,然后停止。 (实际上在某些情况下它有点扭曲,但这是一般的想法。)

    因此,有些人认为在一个 PDF 对象的 endobj 和下一个 PDF 对象的编号之间添加他们的秘密数据是个好主意,如下所示:

    2 0 obj
    /WinAnsiEncoding
    endobj
    HERE ARE MY VERY SECRET VERY HIDDEN DATA, PROBABLY ENCRYPTED ETC
    3 0 obj
    

    现在一些 PDF 阅读器确实认识到存在一些垃圾字节,并提出在没有它们的情况下保存文件。

    2) 我还看到有人在 %%EOF 之后隐藏信息,并被告知这不是解决方案,因为签名未应用于需要功能的元数据。

    大多数 PDF 阅读器会忽略标记后的一些垃圾数据,因为在很久以前,某些 PDF 生成或传输过程会在那里留下一些额外的垃圾。

    ...
    %%EOF
    AGAIN SOME SECRET DATA
    

    但是,当他们自己操作 PDF 时,例如在签署它们时,PDF 阅读器可能会继续根据 PDF 规范丢弃所有不存在的内容。或者在签名的情况下,他们可能会将尾随字节留在原处,然后在它们之后整合签名。一些程序在文件末尾期待那些额外的数据,之后可能找不到它们了,因为它们现在在里面的某个地方。

    另外我不明白他们对本主题中元数据的含义?

    有些人实际上使用此类机制来添加后续处理步骤所需的信息。例如。创建一些 PDF 发票的过程可能会在文件末尾添加发送 PDF 的地址和要支付的金额,然后对 PDF 进行更多处理,例如审查或存档,并在某些最终过程中发送给收件人。

    根据最后添加的数量,审核步骤可能会有所不同;也许价值超过 1000 美元的销售额必须由特殊人员清算。

    发送过程也可以使用文件结束后的额外数据将文件发送给接收者。

    有关某些文档的此类数据有时称为元数据。

    【讨论】:

    • 亲爱的迈克尔,我很想解决我的问题:“使用 PDFBox 将相同的文本重新写入现有的 PDF 文档”问题,提前非常感谢:):)
    • 明天我会调查的。
    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2015-01-20
    • 2021-03-20
    相关资源
    最近更新 更多