macos-windows
最低系统 windows 10 · 测试版
更新说明
0.0.3 — 2026-11-03
首个发布版本。
功能
- 单文件、多文件选择,支持拖拽 PDF 到窗口。
- macOS 使用系统原生
NSOpenPanel;Windows 使用原生GetOpenFileNameWExplorer 风格对话框。 - 输出模式:
- 生成新文件:默认在源目录创建
PDFUnlocker_Output,输出名为原名_unlocked.pdf,重名时追加_1、_2。 - 覆盖原文件:处理前二次确认,成功后才替换原文件。
- 生成新文件:默认在源目录创建
- 可选统一输出目录。
- 批量处理、进度显示、取消操作、单个文件失败不影响其余文件。
- 中文 / English 界面,运行时切换并持久化。
- 配置保存在
os.UserConfigDir()/PDFUnlocker/config.json。
PDF 支持
- 加密:RC4 40-bit(V=1/R=2)、RC4 40/128-bit(V=2/R=3)、AES-128(V=4/R=4,AESV2)、AES-256(V=5/R=5、V=5/R=6)。
- crypt filter:
/V2、/AESV2、/AESV3、/Identity。 - 加密字典:
/StmF、/StrF、/EFF、/EncryptMetadata。 - 文件结构:传统 xref、xref stream、混合
/XRefStm、增量更新、对象流。 - 过滤器:FlateDecode,PNG/TIFF predictor。
- 损坏 xref 扫描恢复;恢复成功时提示
W_XREF_RECOVERED,不可恢复时返回E_XREF_UNRECOVERABLE。
安全
- 仅处理用户密码为空的权限限制 PDF;检测到非空用户密码时返回
E_USER_PASSWORD_REQUIRED,不创建输出文件。 - 输出自检通过后才原子替换目标;失败保留原文件。
- 资源限制与解压炸弹防护。
- 取消后清理临时文件;临时文件权限 0600。
- 覆盖模式拒绝符号链接目标。
- 不联网、不上传文件、不包含遥测、不记录 PDF 内容或密钥。
发布产物
PDFUnlocker-0.0.3-macos-arm64.dmg:macOS arm64,已签名、已公证,内含Applications快捷方式,可拖拽安装。PDFUnlocker-0.0.3-windows-amd64.zip:Windows amd64,未签名。PDFUnlocker-0.0.3-windows-arm64.zip:Windows arm64,未签名。SHA256SUMS:全部产物的 SHA-256 校验值。
校验:
shasum -a 256 -c SHA256SUMS
已知限制
- 不支持破解打开密码(非空用户密码)。
- 数字签名在重写后可能失效;检测到签名域时提示
W_SIGNATURE_INVALIDATED。 - 未知过滤器按原始字节保留,并提示
W_FILTER_PRESERVED。 - 不保证表单脚本语义完全不变。
- 输出不进行线性化。
- Windows 产物未签名,可能触发 SmartScreen 提示。
- 应用图标当前为占位图。
适用声明
本工具用于移除你拥有合法处理权限的 PDF 的权限限制。请勿用于侵犯他人权益的用途。