v0.0.3

  • 2026-11-03
  • macos-windows

macos-windows

最低系统 windows 10 · 测试版

更新说明

0.0.3 — 2026-11-03

首个发布版本。

功能

  • 单文件、多文件选择,支持拖拽 PDF 到窗口。
  • macOS 使用系统原生 NSOpenPanel;Windows 使用原生 GetOpenFileNameW Explorer 风格对话框。
  • 输出模式:
    • 生成新文件:默认在源目录创建 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 的权限限制。请勿用于侵犯他人权益的用途。