PDF 与其说是页面,不如说也是一个小程序。它可以藏一段文档一打开就运行的脚本、一个在机器上启动另一个程序的动作、一个把填好的表单提交到作者指定地址的按钮、一整个作为附件内嵌的可执行文件,以及一层自带脚本能力的 XML 表单。凡是动作可能藏身之处,这里都会走一遍——打开动作,文档、页面、注释和表单域的触发器,书签,文档级脚本树——而且链条会被追到尽头,所以第一步无害、后面排着一个启动动作的组合照样会被抓住。每一条发现都会说明它住在哪里、指向什么、是否需要点击。选定该走的东西,重写出来的副本会从它自己的字节被读回来,再扫描一遍。
功能特性
十个类别,分为高、中、低三级,高和中默认勾选
每一条发现都显示它位于何处、指向什么,以及是否无需点击就会运行
动作链条会被一路追下去,没有什么能藏在一个无害的第一步后面
名字像程序的内嵌文件会与普通附件分开列出
对文件字节做一遍原始关键字扫描,并解出用 #xx 转义伪装的名称
清理后的副本会被重新载入并再次扫描,只有一无所剩才标为干净
可一次处理多个 PDF,逐个下载或一起打包成 ZIP
对每一项清除会改变什么给出警告,例如某个表单不再自动计算
如何使用 PDF 净化
拖入一个或多个 PDF;每一个到达时都会被读取并扫描
逐条看过发现,想要第二种意见就打开原始关键字计数
取消勾选你需要保留的——网页链接和元数据默认不勾
执行净化,读一遍重新扫描的结果,然后下载清理好的副本
示例
输入
invoice_urgent.pdf — unexpected, from a sender nobody recognises
输出
6 findings: 2 scripts that run on opening, 1 launch action, 1 attachment named invoice.pdf.exe, 1 web link, document information · after sanitizing, the re-scan is clean