Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

下载标记助手(DownloadMarkHelper)

面向 Windows 11 x64 的原生文件资源管理器扩展,用于查看并按可配置规则移除 NTFS Zone.Identifier(Mark of the Web,MOTW)来源区域标记。

当前版本:v0.1.0 Preview。删除 MOTW 会降低 Windows 对下载文件提供的 安全提醒;请只对确认可信的文件执行删除。

功能

  • Windows 11 新版右键菜单,标题和可用状态随选中文件动态变化;
  • 尽力显示的橙色图标角标;
  • 默认 Alt+Shift+Q 的全局快捷键,支持修改和冲突检测;
  • 单实例托盘服务,提供设置、暂停/恢复快捷键和退出;
  • Zone 0-4 与“未知或损坏”标记的多选删除策略;
  • 删除后同步通知并刷新当前资源管理器视图,避免预览窗格沿用旧安全状态;
  • 所有入口共用同一个解析、匹配和删除模块。

默认只处理 Zone 3(Internet)和 Zone 4(Restricted)。完全不存在 Zone.Identifier 的文件不会被视为“未知或损坏”。

安全边界

程序只删除匹配策略的 Zone.Identifier 附加数据流,不修改主文件内容,并且只处理:

  • 本地固定磁盘;
  • NTFS 文件系统;
  • 普通文件。

网络路径、文件夹、重解析点和云占位文件均会跳过,不递归目录。测试会校验删除前后 主文件内容不变。

安装预览版

从 GitHub Releases 下载 DownloadMarkHelper-v0.1.0-win-x64.zip,解压后在 PowerShell 7 中运行:

pwsh -ExecutionPolicy Bypass -File .\scripts\Install.ps1

安装器会请求管理员权限,安装到 C:\Program Files\DownloadMarkHelper,注册 sparse MSIX、Windows 11 右键菜单和角标处理器,配置登录启动,并重启资源管理器。

预览版使用专用自签名证书。安装脚本会把 ZIP 中的公开 .cer 导入本机 TrustedPeople;私钥不会进入源码仓库或 Release。SmartScreen 仍可能显示 “未知发布者”或信誉提示。

卸载:

pwsh -ExecutionPolicy Bypass -File .\scripts\Uninstall.ps1

卸载器按包名、CLSID 和证书指纹精确清理。用户在 HKCU\Software\DownloadMarkHelper 中的策略设置默认保留,便于重新安装。若外壳 DLL 仍被其他程序加载,卸载器不会终止无关程序,而会安排在下次 Windows 重启后 删除锁定文件。

使用

  • 右键本地 NTFS 文件,使用“移除来源区域标记”;
  • 在资源管理器中选中一个或多个文件后按 Alt+Shift+Q
  • 从托盘或开始菜单打开设置,修改快捷键和要处理的 Zone 类型;
  • 将全部 Zone 选项取消后,角标隐藏、菜单禁用、快捷键静默空操作。

Windows 最多提供 15 个图标覆盖槽位。如果系统已有过多覆盖处理器,本插件角标可能 不可见;右键菜单和快捷键不受影响。

从源码构建

要求:

  • Windows 11 x64;
  • Visual Studio Build Tools 2022,包含 MSVC x64 C++ 工作负载;
  • Windows SDK 10.0.26100 或兼容的更新版本;
  • PowerShell 7。

构建并运行核心测试:

pwsh -File .\scripts\Build.ps1

构建 sparse MSIX 并使用临时自签名证书签名:

pwsh -File .\scripts\Package.ps1

生成 GitHub Release ZIP 和 SHA-256:

pwsh -File .\scripts\CreateRelease.ps1 -Version 0.1.0

签名脚本会在当前用户证书存储中临时创建私钥,并在签名完成后删除它。.gitignore 同时排除所有常见私钥格式和构建产物。

验证范围

自动化测试覆盖:

  • Zone 0-4、无数据流、缺少 ZoneId、非法值和损坏结构;
  • 中文及特殊字符路径;
  • 匹配/不匹配策略和主文件内容保持不变;
  • 全局热键冲突;
  • 已安装 COM 命令的状态、标题和实际删除;
  • 角标 COM 判定、MSIX 清单、注册表、签名和托盘进程。

安装后验证:

pwsh -File .\scripts\VerifyInstalled.ps1

架构

  • src/common:Zone.Identifier 解析、策略、注册表和删除操作;
  • src/app:托盘、设置窗口、热键以及资源管理器选中项获取;
  • src/shellIExplorerCommandIShellIconOverlayIdentifier 和 COM 类工厂;
  • package:sparse MSIX 清单;
  • scripts:构建、签名、安装、卸载、验证与发布脚本;
  • src/tests:核心及已安装集成测试。

Windows 11 新版右键菜单采用 sparse MSIX + COM surrogate 架构。常驻托盘保持为普通 Win32 进程,避免与外壳代理共享包进程生命周期。

贡献与许可证

欢迎提交 Issue 和 Pull Request。安全问题请参阅 SECURITY.md

本项目采用 MIT License。实现为独立编写;外壳集成架构参考了 Microsoft 公开文档以及 Notepad++ nppShell 等公开项目,但未复制其 GPL 源码。

About

Windows 11 helper for inspecting and removing configurable Zone.Identifier download marks.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages