WhatsInMyPDF

本地 PDF 取证

找出藏在你 PDF 里的内容

白底白字、隐形渲染模式、极小字号、隐藏图层,以及针对 AI 审阅者的提示词注入。100% 本地运行——文件不会离开你的浏览器。

手头没有可疑的 PDF?试试示例文件:

别信我们说的,自己验

这类工具都会说文件留在你的设备上。下面三种方法可以核实这一个,都不需要你信任我们。

  1. 01

    看网络面板

    打开浏览器的开发者工具,切到 Network,然后扫描一个文件。没有任何一个请求带走了这份 PDF。你还会看到 10 MB 的扫描引擎只在你真的发起扫描之后才下载,光打开这个页面不会去取它。

  2. 02

    拔掉网线

    先扫描一个文件,然后断开网络,刷新页面,再扫描另一个。两件事都照样能用:访问过一次之后,整个工具就住在你的浏览器里,没有什么需要它去联系了。

  3. 03

    读测试,别读承诺

    源码是公开的,它的测试会在扫描过程中盯着浏览器自己的网络流量,一旦有东西离开页面就让构建失败。这条测试在每次部署时都会对着这个线上站点跑一遍。

不上传的那条测试检测逻辑整个项目,AGPL 开源

我们能检测什么

十一种隐藏内容,直接从文件结构里读取,而不是从渲染出来的页面上判断。

近白色文字

强信号

文字颜色与页面背景几乎相同,人眼看是一片空白,但 AI 解析文本层时能完整读出。白底白字几乎从来都不是无意的。

隐形渲染模式

强信号

文字以 PDF 渲染模式 3 绘制,不会画出任何像素,却仍留在可被机器读取的文本层中。正常的排版工具几乎不会用到这种模式。

极小字号

字号小于 4pt,屏幕或打印都看不清,但软件仍能完整提取。最常见的来源是被缩小后放进版面的图表:坐标轴刻度和标签经常落在 1pt 到 4pt 之间,一张图就能产生几百条。真正值得读的是那些成句子的文字,而不是单个的词和数字。

页面外文字

完全落在可视页面范围之外的文字:它存在于文件里,任何读取整页的工具都能提取到,却从来没有被画在读者看得见的地方。PDF 引擎通常会在提取之前就把这类文字裁掉,本工具特意先按整张纸读一遍,所以下面能直接引用原文。超出整张纸范围(媒体框之外)的文字仍然取不到。

裁剪框不匹配

页面的裁剪范围比完整的原始尺寸更小,可能把部分内容挤到了被裁掉的边缘之外。这在扫描件里往往是无害的,建议检查裁剪掉的部分究竟是什么。

隐藏图层

默认关闭或被显式标记为隐藏的可选内容图层。图层的内容仍留在文件里,软件依然可以读取,即便没有显示出来。

嵌入文件

PDF 内附带了一个或多个文件。工程数据表里常见,出现在论文或合同里则不寻常。附件名称会在下方列出,打开前请先核实。

嵌入 JavaScript

文档携带 JavaScript 代码,部分阅读器打开文件时会执行它。出现在交互式表单里属正常,出现在静态论文或合同里则不寻常。这里只报告其存在,不会执行它。

批注

评论和便签的文字在正常渲染下不可见,但仍留在文件里。多数情况下是编辑过程留下的无害内容,但也是藏匿指令的常见位置,务必读一读批注内容。

提示词注入

文本匹配了已知的、试图操纵 AI 审阅者或摘要工具的模式,例如让它忽略原有指令或给出正面结论。这一发现仅供参考,并非定论,一篇讨论提示词注入的论文可能会合理地引用这类文字,需结合上下文判断。

同行评审水印

一段隐藏文字,要求 AI 审稿人在评审意见里嵌入固定短语。部分会议会给每一篇投稿都加上一条,这样模型代写的评审一旦复现这些短语就会暴露——也就是说,这一项出现并不说明作者做了什么,作者通常根本不知道它的存在。采用这种做法的会议,一般也会说明:仅用于暴露 AI 使用的水印无需处理,而试图影响录用结论的隐藏文字则需要上报。本项按指令的结构形态匹配,所以它的含义是「看起来像评审水印」,不是「证明是评审水印」。

常见问题

我的文件会被上传吗?
不会。扫描过程完全在你的浏览器里通过 WebAssembly 完成。你的 PDF 在自己的设备上本地解码和分析,不会上传到任何服务器,不会有任何内容离开你的浏览器。
它可能漏掉什么?
它读取的是 PDF 的文本层和文件结构,所以无法看到只以图片形式存在的文字——扫描件或截图没有文本层可供检查。它也可能漏掉措辞隐晦到足以绕过已知模式的指令。扫描结果干净能降低风险,但不能证明文件安全。
为什么它是免费开源的?
检查一份文档里有没有隐藏内容,不应该需要把文件交给一个陌生的服务器。保持工具免费开源,意味着任何人都可以验证它确实做了它声称的事,而且没有上传任何内容。没有账号,没有付费墙。页面上没有任何第三方脚本:内容安全策略只允许加载本站域名下的脚本,这一点你可以在浏览器的网络面板里自己核实。
可以用它检查简历和论文吗?
可以——这正是最常见的两种用途。你可以检查收到的一份简历里有没有隐藏关键词,也可以在把一篇论文、一份合同或一份报告交给任何自动化工具之前,先扫描它里面有没有针对 AI 审阅者或摘要工具的文字和指令。