PDF解锁

  • v0.0.7
  • 2026-11-04
  • windows_macos
  • 测试版

下载

最新版本 v0.0.7 · 2026-11-04

更新日志

  1. v0.0.7 2026-11-04 windows_macos

    更新说明

    0.0.7 — 2026-11-04

    macOS 已签名;Windows 未签名。本版本只发布 Windows amd64 产物,arm64 不再单独打包(见"平台调整")。

    功能

    • 未加密 PDF 直接处理:不再报错。仅做轻量结构校验后按原字节输出,处理更快。
    • 全新"毛玻璃"界面:多彩渐变背景 + 半透明面板 + 大圆角;macOS 采用 macOS 27 风格,Windows 采用 Win11 Fluent 风格。主题由本项目手写实现,无第三方依赖。
    • 暗色模式对比度修复:按钮、文件列表、文字在深色系统下可正常阅读。
    • 文件列表改为单行紧凑布局(图标 / 文件名 / 大小 / 状态):待处理蓝色,成功逐条变绿,失败红色,取消 / 跳过低灰。
    • “处理完成"提示改为右上角 Toast:滑入显示 3 秒后滑出,不再弹出阻塞式对话框。
    • 首次启动窗口按内容自适应:宽度随顶部按钮而定,高度恰好完整显示 6 个文件;手动调整过窗口尺寸后会自动记住并复用。
    • 设置页分组为"外观 / 输出”,语言与默认输出选项统一在同一个面板。
    • 精简界面:移除进度条,底部仅保留输出模式与"开始处理"按钮。

    PDF 处理

    • 加密支持保持不变:RC4 40/128 位、AES-128(AESV2)、AES-256(AESV3,R5/R6)、crypt filter、对象流、损坏 xref 恢复等。
    • 新增 /Perms 版本标记校验(R5 为 True、R6 为 Fals),密钥校验更严格。
    • 未加密文件不再执行整树内容哈希,结构校验通过后直接复制,避免不必要的开销与误报。

    修复

    • 批量处理中切换语言会导致按钮状态异常——已禁止处理过程中切换语言。
    • Windows 路径长度判断改用 UTF-16 计长,避免多字节文件名(如中文)误报"路径过长"。
    • 配置文件仅在内容变化时写入,减少不必要的磁盘写。
    • 清理历史遗留死代码(未使用的错误码、冗余进度计数、未用文案键)。

    平台调整

    • Windows 产物改为仅提供 PDFUnlocker-0.0.7-windows-amd64.zip。arm64 版在 Windows-on-ARM 环境受 OpenGL/GPU 驱动限制无法显示窗口;amd64 版在 x86 原生与 ARM 模拟下均可正常运行。
    • macOS 此次签名通过 Apple 时间戳服务,DMG 一次性签名成功。

    产物与校验

    • PDFUnlocker-0.0.7-macos-arm64.dmg
    • PDFUnlocker-0.0.7-windows-amd64.zip
    cd dist/release-0.0.7
    shasum -a 256 -c SHA256SUMS
    

    已知限制

    • 仅处理用户密码为空的权限限制 PDF;不支持破解打开密码。
    • 数字签名在重写后可能失效,检测到签名域时给出提示。
    • Windows 产物未进行 Authenticode 签名;macOS 已签名、未公证,首次打开可能触发 Gatekeeper 提示。
    • 本文档发布时应用图标仍为占位图,正式发布前应替换。
  2. v0.0.5 2026-11-03 macos.windows

    更新说明

    0.0.5 — 2026-11-03

    许可证与分发合规更新,无功能变更。

    变更

    • 项目代码采用 MIT 许可证,新增 LICENSE。
    • 新增 THIRD_PARTY_NOTICES.md,收录全部 Go 模块、Go 运行时、Fyne 内嵌字体及依赖内嵌的第三方许可证全文。
    • macOS 应用包 Contents/Resources、DMG、Windows ZIP 与发布目录均包含 LICENSE 和 THIRD_PARTY_NOTICES.md。
    • SHA256SUMS 覆盖新增许可证文件。
    • 关于对话框、macOS Info.plist、Windows 版本资源中的版权文案更新为 MIT 许可标识。
    • build/check_release.sh 增加许可证文件存在性检查。
  3. v0.0.3 2026-11-03 macos-windows

    更新说明

    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 的权限限制。请勿用于侵犯他人权益的用途。