piapia123
zh

提取 PDF 内嵌附件

文档

所有处理都在浏览器本地完成,数据不上传服务器

把文件拖到这里,或点击选择

PDF · 单个文件不超过 100 MB

PDF 里可以整个夹带别的文件,阅读器通常在侧边有个「附件」面板 —— 但没人会去点那一下。这个工具把里面的附件列出来并导出。 为什么要看这个:内嵌附件是一个正经的攻击面。把 `.exe` / `.js` / `.hta` 藏在发票、简历、报价单里,再靠「打开附件」骗人执行,是流传了很多年的一类手法。而「这份 PDF 里到底夹了什么」是个用浏览器本地就能回答的问题。 ⚠️ 只列出与解出内容,不执行任何东西,也不提供「打开」入口。 附件是不可信数据。可执行文件与脚本会被标出来,但标出来不等于拦住 —— 下载之后要不要双击是你的事,所以这里给的是提示而不是拦截。另外:没被标出来的也不等于安全,判断只看扩展名。 ⚠️ 内嵌附件与页面上的图片、正文里的链接不是一回事:扫描件里的图、正文中的超链接都不会出现在这里。要找页面里的图,请用「PDF 提取图片」。

功能

  • 列出 PDF 里所有内嵌附件的文件名、大小与说明
  • 逐个导出成文件,MIME 按二进制给(不给浏览器「这是可渲染内容」的暗示)
  • ⚠️ 标出可执行文件与脚本,包括 `发票.pdf.exe` 这种双扩展名伪装
  • 读不出内容的附件也会列进清单,而不是悄悄少一个
  • 清单能一键复制走,便于留档或转给别人
  • 全程只读,不执行附件、不打开任何东西
  • 文件不上传、不经过任何服务器

使用方法

  1. 把要检查的 PDF 拖进来
  2. 第一张卡片是附件清单,后面每个附件一张卡片
  3. 核对清单里的文件名与「可执行文件」标记
  4. 需要的话逐个下载,或把清单复制走

常见问题

「内嵌附件」和页面里的图片有什么区别?
内嵌附件(embedded files)是 PDF 里单独存着的一整个文件,阅读器通常在侧边栏给一个「附件」面板,双击就能打开或另存。页面上的图片、正文里的超链接、注释里的文件都没有这个性质 —— 它们是页面内容的一部分。所以「这份 PDF 有没有夹带东西」问的正是前者,用这个工具查;要抽页面里的图,用「PDF 提取图片」。
标了「可执行文件」是不是就一定有毒?
不是。这里只按扩展名判断,所以:① 一个正常的自动化脚本(`.sh`、`.ps1`)也会被标出来;② 没被标出来的也不等于安全 —— 恶意文件可以是 `.doc` 里带宏、可以是伪装成别的类型、也可以就是一份正常的 PDF。这条标记的作用是把注意力引过去,不是给出结论。真正的判断只能靠你自己核对来源:这份 PDF 是谁发来的、你期待它里面有什么。
为什么不能给 PDF 添加附件?
因为做不到「说清楚哪一个是主体」。添加附件需要「一份 PDF + 若干附件文件」这种输入,而这类文件工具的外壳是「拖进若干文件 → 产出若干文件」的模型 —— 它表达不了「第一个是主体、其余是附件」。硬凑只能约定「第一个 `.pdf` 是主体」,而那种约定在你拖错顺序时不会报错,只会安静地把你要附加进去的那份 PDF 当成主体、输出一份莫名其妙的结果。所以这个方向没做。
附件会上传吗?会执行吗?
都不会。解析用的是打包进本页面的 pdf.js,全程在本机内存里完成,没有网络请求。附件只是被解成字节、包成一个下载 blob —— 不执行、不解析、不渲染,也不提供任何「打开它」的入口。

相关工具