gpt4 book ai didi

pdf - 如何使用静态工具检查 PDF 是否受密码保护

转载 作者:行者123 更新时间:2023-12-04 20:54:26 25 4
gpt4 key购买 nike

我已经看到有关此主题的多个问题。在答案中,用户必须使用一些 pdf 库或内置支持加载 pdf,然后根据库函数,用户可以确定 pdf 是否已加密。我很想知道是否可以使用一些静态分析工具来检测加密的 PDF,即 YARA,在那里我们只将文件内容作为二进制/字符串数据读取,而不是文件的完整结构?

最佳答案

根据 Adob​​e PDF (v.1.7) 引用手册(表 3.13)的第 3.4.4 节,PDF 加密在 File Trailer 字典中带有一个加密条目。

因此,要检测 PDF 加密,请转到文件末尾并向上搜索仅包含单词“trailer”的第一行,然后再次向下搜索字符串“/Encrypt”。如果存在,则文件已加密,否则不加密。

现在,检测 PDF 是否受密码保护,这意味着您无法在不提供密码的情况下打开它,这将变得更加困难。您基本上需要在/Encrypt 键(例如 '14 0 R')之后读取对象引用,跳转到文件的开头并搜索该对象(例如 '14 0 obj <<')并查找/Filter 、/R 和/U 字典中的键。

如果/Filter 值为/Standard,则
根据算法 3.6“验证用户密码”(第 127 页)的序言,算法 3.6 可用于确定用户密码是否为空字符串,从而确定是否禁止提示输入密码。

所以基本上,如果/R 值为 2,您将查找/U 值作为特定字符串,如果/R 值为 3 或 4,您可以查找/U 值作为另一个特定字符串,如果这两个值都不是,则需要用户密码才能打开文档,并且文档受密码保护。

您可以按照 PDF 引用中的算法计算这些/U 值,或者您可以从不需要密码才能打开的现有加密 PDF 中挖掘它们。

关于pdf - 如何使用静态工具检查 PDF 是否受密码保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com