◉ Pulse
aakk007 avatar
#17 today

aakk007/RogueCleaner

C# Other

流氓软件克星:扫描和清理 Windows 流氓右键菜单、自启动、计划任务、服务、浏览器插件和文件关联残留

Created Jul 20, 2026
Stars
17
Today
+17
Forks
1
Quality
90/100
Momentum
20

README

Fetched from GitHub on Oct 30, 2026, 10:16 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to aakk007/RogueCleaner and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

流氓软件克星

一个专门揪 Windows 右键菜单、自启动、计划任务、服务、浏览器插件和文件关联残留的小工具。

做它的原因很简单:有些软件明明只是输入法、网盘、文档、下载器、看图工具,却很喜欢悄悄把自己塞进右键菜单、开机启动、浏览器扩展和后台服务里。用户只是想用一个功能,它们倒好,顺手把电脑当成自家客厅。

作者:aakk007

v2 方向

v2 改成 C# WinForms 单文件主程序:

  • 运行时不再依赖 RogueCleaner.ps1、rules 或其它外部 sidecar 文件。
  • 仓库和源码包也不再保留旧 PowerShell 引擎、旧 Launcher 或 WinRAR SFX 一键运行脚本。
  • 首次运行只在 exe 同目录创建一个数据目录:流氓软件克星数据。
  • 扫描核心在 C# 内,多线程扫描右键菜单、“此电脑/资源管理器”入口、启动项、服务、计划任务、浏览器扩展和文件关联。
  • 清理前备份,清理后复核并复扫。
  • 增加恢复中心,可以按批次回滚注册表、被移动文件、服务启动状态和计划任务状态。
  • 检查更新会从 GitHub Release 读取最新版,用户确认后下载直出 exe,替换完成后自动重启。

v2.0.16 更新

  • 修复清理右键菜单后可能无法恢复的问题:注册表备份失败时取消删除,防止右键菜单项被删除后无法恢复。
  • 保护核心右键动词与系统命令:只提示,不删除,避免右键菜单整体损坏。
  • 恢复中心部分恢复失败时,失败项会保留并可单独重试,不再丢失。
  • 增加单实例保护:同一时间只保留一个主窗口。
  • 如遇右键菜单异常、恢复中心不显示失败项或更新异常,请务必到项目问题区提交问题,并附上反馈样本(清理批次记录、截图、系统版本、复现步骤等),以便定位修复。

v2.0.15 更新

  • 修复高缩放和窄窗口下统计卡、顶部操作栏、右键管理工具栏及部分编辑窗口可能被遮挡的问题。
  • 优化反馈窗口、恢复中心和旧式菜单编辑器的自适应布局,主操作保持可见、可点击。
  • 新增本地白名单:保留原始证据展示,不参与批量处理。
  • 新增网盘虚拟盘只读诊断:只展示盘符证据,不删除设备、盘符或客户端。
  • 新增安全软件误报复核材料生成,便于用户向安全软件厂商提交复核。
  • 检查更新会显示最新发布说明摘要;本版本的发布说明全部使用中文。
  • 已完成本地多档缩放几何回归;不同显示设备和缩放组合仍欢迎通过项目问题区反馈。

v2.0.14 更新

  • 重做主界面与各功能窗体,统一紧凑卡片、圆角操作按钮、中文工具栏、清晰滚动条和软件图标展示。
  • 总览、启动项、右键管理、弹窗/流氓诊断与恢复中心统一识别关联软件和图标,清理复扫后不再退回默认图标。
  • 右键管理与风险诊断改用同一发现源,覆盖传统菜单、文件类型菜单、Shell 扩展和 Windows 11 现代右键;已禁用项目显示为“已治理”。
  • 右键菜单优先显示资源管理器里的真实命令名称,补齐 Beyond Compare、WPS、搜狗、360 等通用插件的枚举、中文展示与定向处理。
  • 主程序、附带产品和独立捆绑组件严格分开,减少按厂商关键词误报或错误卸载主程序。
  • 恢复中心新增当前批次删除与旧记录清理,保留路径边界、二次确认和删除后复核。
  • 默认普通权限启动,仅在处理系统级项目时请求 Windows UAC;取消或无管理员凭据仍可扫描和导出报告,提权后恢复页面与勾选但不自动清理。
  • 修复自定义滚动条无法使用鼠标滚轮、扫描后工具栏遮挡、列表列宽/居中、详情栏过宽和部分注册表拒绝访问导致整次扫描失败的问题。

v2.0.13 更新

  • 将正常右键菜单管理与风险诊断分开,新增 Shell 命令、Shell 扩展、文件类型菜单和 CommandStore 管理。
  • 新增 ShellNew、SendTo、OpenWith、GUID 屏蔽、WinX、Windows 11 现代/UWP、IE 旧式菜单及安全增强菜单。
  • 受保护注册表项拒绝访问时记录警告并继续扫描,不再让单个位置终止整次扫描。
  • 通用弹窗、广告、守护行为标签不再冒充厂商身份,补充搜狗与未知 HotNews 的碰撞回归。
  • 计划任务操作改用 Windows 任务计划 COM;服务操作仍沿用原有 sc.exe,不通过 WMI 创建或修改服务。
  • 增加关于与开源致谢,说明 ContextMenuManager 的参考关系和独立实现边界。

使用方式

普通用户下载 流氓软件克星.exe 后直接双击。

程序不会把自己搬家。你放桌面,它就在桌面运行;你放某个文件夹,它就在那个文件夹旁边创建:

流氓软件克星数据\

这个目录用于保存:

  • reports:扫描和清理报告
  • backups:清理前备份
  • logs:错误日志
  • updates:更新检查状态
  • quarantine:被移动的文件
  • state:更新检查等运行状态
  • feedback:用户主动生成、提交前可预览的脱敏识别反馈

程序不会创建桌面快捷方式,也不会改动开始菜单或启动项。

用户能看懂什么

列表优先显示人话,不让普通用户看着注册表路径猜谜:

  • 在哪里冒出来:右键菜单、开机启动、后台服务、计划任务、浏览器插件、文件关联等。
  • 用户会看到什么:右键菜单真实标题、服务名、任务名、打开方式名称。
  • 影响说明:它会在右键出现、开机自启、后台常驻,还是接管某类文件。
  • 工具会怎么处理:备份后删注册表、禁用服务、禁用计划任务、弹出卸载器,或者仅提示。
  • 鼠标悬停在行上会显示完整说明、技术位置和证据。

所有主列表统一通过软件身份解析器显示图标:优先采用已安装软件主程序图标,Shell DLL、服务 DLL 和动态右键组件图标只作后备。项目级优先级、缓存和回归要求见 docs/development/software-icon-presentation-standard.md。

所有业务窗体的刷新、恢复、显示/隐藏、删除和关闭按钮统一通过主题组件生成,固定语义颜色、圆角、尺寸、图标和悬停反馈;工具按钮必须独占一行。详细要求见 docs/development/ui-action-control-standard.md。

每次涉及功能或界面改动前,都会只读核对 GitHub Issue 反馈,确认哪些已有证据覆盖、哪些需要修复或补充样本;公开回复或关闭 Issue 仍由作者确认。规则见 docs/development/github-issue-feedback-triage-standard.md。

程序统一采用普通权限启动、按操作请求 Windows UAC 的权限模型;取消或无管理员凭据时继续使用普通模式,提权重启只恢复页面和待处理选择,不自动执行修改。详细要求见 docs/development/permission-elevation-standard.md。

所有用户可见的功能语义统一使用中文;第三方品牌可保留原名,但必须补充中文用途,原始英文标题、路径和命令只保留在技术详情中。详细要求见 docs/development/chinese-ui-display-standard.md。

主程序与附带产品严格分开处理:主程序不因厂商关键词进入卸载结果;独立附带产品才允许定向打开自己的卸载器,服务、任务、启动项和右键入口只处理对应项。详细要求见 docs/development/targeted-removal-boundary-standard.md。

默认打开程序这类容易误伤日常使用的项目只提示,不参与一键清理。 疑似捆绑/弹窗/守护组件如果有卸载命令,工具会显示为“弹出卸载器,用户自己确认”。这类项目不会被“勾选可清理”批量勾上,必须手动勾选。

覆盖范围

当前内置识别:

  • 360 系列
  • WPS / 金山
  • 百度 / 百度网盘
  • 夸克 / 夸克网盘
  • 搜狗
  • 迅雷
  • 钉钉
  • 腾讯系
  • 2345 系列
  • Bandisoft / BandiView / Bandizip
  • 猎豹 / 金山毒霸
  • 驱动/硬件检测工具
  • 国产压缩/看图工具
  • 国产浏览器/导航
  • Flash 中国特供组件
  • 手机助手/设备助手
  • 国产影音/游戏大厅
  • PDF/办公捆绑工具
  • 预装管家/厂商助手

扫描位置:

  • 资源管理器右键菜单和常见 Shell 扩展
  • “此电脑”、资源管理器导航栏和网络位置里的网盘/同步入口图标
  • 开机启动注册表和启动文件夹
  • Windows 后台服务
  • Windows 计划任务
  • Chrome / Edge 扩展策略和 Native Messaging Host
  • Firefox/Mozilla Native Messaging Host
  • 常见图片、视频、压缩包、Office 文档等文件关联和打开方式残留
  • 疑似隐藏、不可移除、没有卸载命令的卸载项

默认不扫描主程序卸载项,避免不懂的人一键全选把正常软件主程序误卸载。 隐藏/无卸载入口的组件只报告,不默认卸载。 有卸载命令的疑似捆绑/弹窗/守护组件,清理时弹出原厂卸载器,由用户自己确认卸载。

厂商名称不是从整段注册表文本里做模糊子串猜测。程序会分别核对显示名、Publisher、文件版本信息、有效 Authenticode 签名、MSI 元数据和安装目录归属;GUID、哈希、PID、完整注册表路径以及 msiexec.exe、rundll32.exe 等系统宿主不能单独用来认定厂商。数字证书用于确认文件归属,不代表其弹窗、守护或隐藏行为合理。

如果确实命中独立的弹窗、广告、守护或自动恢复行为,但本地证据不足以确认厂商,结果会显示为“未知第三方”,并且只能提示,不能进入一键清理或自动卸载链。

风险控制

  • 打开软件默认不清理。
  • 扫描结果默认不勾选。
  • 勾选可清理 不会勾选“仅提示”项目。
  • 清理前二次确认。
  • 默认以普通权限启动,扫描、查看结果和导出报告不强制弹出 UAC。处理 HKLM、服务、计划任务等系统级项目时,点击“请求管理员权限”或按操作提示调用 Windows UAC;取消、没有管理员凭据或单位策略拒绝时继续保持普通模式,不会尝试绕过权限。提权重启后会恢复原页面和待处理勾选项,但不会自动执行清理。
  • 清理后逐项复核,失败或残留会继续留在复扫列表里。

恢复中心

每次清理都会生成一个备份批次,保存在:

流氓软件克星数据\backups\

点 恢复中心 可以选择批次恢复。

恢复中心同时提供两种空间清理方式:

  • 删除当前批次:只删除当前选中的恢复记录及同批次处理报告,删除前显示占用空间并二次确认。
  • 清理旧记录:保留最近 30 天的全部记录,并始终保留最新 20 个批次,只清理更早的积压记录。

恢复记录删除后不能再用于回滚;工具会限制删除路径只能位于自己的备份目录内,并在删除后复核。

更新

程序会按天检查 GitHub Release 是否有新版本。发现新版本时会显示最新发布说明摘要,并弹窗询问是否下载并自动重启更新:

https://github.com/aakk007/RogueCleaner/releases

不会静默更新。只有用户在弹窗里确认后,才会下载 Release 里的直出 exe,并在本地完成替换重启。

下载与校验

当前推荐只下载 GitHub Release 里的直出 EXE:

RogueCleaner-v2.0.16-*.exe

压缩包主要给需要审查源码或保留完整发布包的人使用。每次打包会同时生成 SHA256SUMS-v2.0.16-*.txt,用于核对下载文件是否和发布文件一致。

如果安全软件提示风险,优先核对来源和 SHA256。这个工具会读取、备份、删除注册表项,禁用服务和计划任务,容易被启发式规则归为系统工具类风险;项目原则是不加壳、不混淆、不内嵌脚本、不做自解压一键包、不绕过安全软件。

构建

需要 Windows 自带的 .NET Framework 4.x 编译器:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Build-Exe.ps1

输出:

流氓软件克星.exe
dist\流氓软件克星\流氓软件克星.exe

v2 发布目录只包含 exe,不再包含 .md、.ps1 或规则目录。源码包只包含 v2 源码、manifest、图标和构建脚本,不再混入旧 Launcher、旧 PowerShell 运行链路或 WinRAR SFX 自解压脚本。

开发烟测:

.\流氓软件克星.exe --scan-smoke

这个参数只扫描并写报告,不弹 GUI,不执行清理。GUI 扫描异常时也会写入 reports\scan-error-*.json,方便把失败证据发回来,而不是只剩一句“扫描失败”。

厂商身份碰撞回归:

.\流氓软件克星.exe --identity-smoke

这个参数会验证 Corel GUID 中偶然出现 2345、系统 MSI 宿主、Thunderbird,以及各厂商关键词出现在 GUID、随机路径或注册表位置时均不会误认厂商。

反馈脱敏回归:

.\流氓软件克星.exe --feedback-smoke

这个参数会用包含用户名、SID、用户目录、邮箱、URL、令牌和网络地址的模拟证据验证反馈脱敏,失败时返回非零退出码并在 reports 中写入结果。

界面布局回归:

.\流氓软件克星.exe --ui-smoke

这个参数会在默认窗口和最小窗口下检查“开始扫描”“清理勾选”“检查更新”“反馈”的可见性与排列,填充本地模拟结果验证右侧详情面板,并把主界面、最小窗口和反馈窗体截图写入 reports。它还会执行 100%/125%/150%/200% 的进程内几何模拟,检查换行、父容器裁切和按钮文字;该模拟不能代替真实 Windows 缩放/实际 DeviceDpi 的人工验收,在对外宣称真实高缩放已验证或关闭相关反馈前,仍须按 docs/validation/2026-08-08-ui-dpi-release-gate.md 完成真机矩阵。它不扫描、清理或提交反馈。

右键管理与权限回归(仅验证构建):

.\流氓软件克星.exe --permission-smoke
.\流氓软件克星.exe --context-menu-smoke
.\流氓软件克星.exe --special-menu-smoke
.\流氓软件克星.exe --advanced-menu-smoke

前者模拟受保护注册表拒绝读取,验证整次扫描仍能完成并记录警告;后者使用 CodexRogueCleanerTest 前缀的当前用户测试项,执行枚举、禁用、备份、恢复和复核,并在结束后清理测试项。

识别反馈

扫描后,可从顶部“反馈”入口反馈当前选中的结果,并选择误报、漏报、身份错误或关联错误;漏报不要求先选中扫描结果。程序只提取当前项目需要的字段,先在本地预览并脱敏,再保存到 流氓软件克星数据\feedback。选择“复制并打开 GitHub”后,详细内容进入剪贴板,浏览器打开结构化 Issue 表单,最终是否公开提交由用户确认。

程序不会保存 GitHub Token,也不会在后台直接提交。默认不包含文件 SHA256,不上传文件或完整系统清单;用户名、SID、计算机名、用户目录、邮箱、URL、令牌和网络地址会被替换。GitHub Issue 仅作为待验证样本,后续需复核并转成回归用例,不能直接改变本机识别或清理规则。

本地白名单与网盘诊断

在结果表中右键项目,选择“加入/移除本地白名单”,即可管理本地白名单。白名单保存于 流氓软件克星数据\state\user-whitelist.json;命中项目仍会展示原始证据,但固定为“已白名单”、不可勾选,也不会进入批量处理。

扫描会对名称或卷标具有明确网盘特征的盘符进行只读诊断。它只展示盘符、类型、卷标和文件系统证据,绝不自动卸载网盘、删除设备、移除驱动器或改写盘符。

如需向安全软件厂商申诉误报,可运行:

.\流氓软件克星.exe --vendor-review-smoke

程序会在 流氓软件克星数据\reports 生成包含版本、SHA-256、签名状态与生成时间的本地 Markdown 材料;不会自行提交或规避安全软件。

右键菜单管理

左侧“右键管理”会独立列出正常和可疑的 Shell 命令、Shell 扩展、拖放处理器、文件类型菜单以及 CommandStore 命令仓库;它与流氓诊断的风险结果分开,不会因为出现在管理列表中就被判定为风险项。

右键管理与开始扫描必须使用同一个发现服务,覆盖传统菜单、文件类型专属菜单和 Windows 11 现代右键扩展。风险诊断在同一清单上做身份与行为筛选:已启用的可疑插件进入精确禁用,已禁用的插件继续显示为“已治理”;软件更新或重装后重新启用时,下次扫描会再次发现。扫描不自动修改注册表,也不增加后台常驻监控。详细要求见 docs/development/context-menu-discovery-consistency-standard.md。

普通右键管理还会合并应用包清单明确声明、且能确认属于第三方软件的 Windows 现代右键扩展,例如 Beyond Compare 5 的打包右键组件;微软系统包继续隐藏。用户界面中的菜单名称、类型、状态和说明统一使用中文,软件品牌、路径、命令和组件编号保留原始证据。

“右键里显示的名称”优先采用资源管理器真正显示的命令文字,例如“打开”“选择左边文件进行比较”,不再只写“某软件右键菜单”。静态命令直接读取注册表和系统文字资源;动态扩展在隔离子进程中读取接口或组件文字资源,单项超时会立即终止并回退到明确的“动态右键命令(文字未读取)”,不会阻塞主界面。应用包的现代声明和传统兼容声明统一扫描、按组件与出现位置去重,不为单个软件写专用扫描入口。

当前支持启用、禁用、编辑名称/图标/命令、添加菜单、添加级联子菜单、删除、复制详情和定位注册表。添加操作默认写入当前用户;所有修改都会保存原注册表值和子键结构,写入后立即复核,并可从恢复中心还原。

“专用模块”进一步管理:

  • ShellNew 新建菜单:查看、添加空白/模板项、启停和删除。
  • SendTo 发送到:查看、创建快捷方式、移入禁用区、删除和恢复。
  • OpenWith 打开方式:覆盖 OpenWithProgids、OpenWithList 和 Applications,支持关联项启停、添加和恢复。
  • GUID 屏蔽:查看、添加或解除 Shell Extensions\Blocked 项。

专用模块使用独立恢复清单,同时兼容现有恢复中心。验证构建可运行 --special-menu-smoke,在当前用户范围执行四类测试项的创建、枚举、禁用、恢复和清理。

“高级兼容”继续覆盖:

  • WinX 快捷菜单:按 Group1/2/3 查看已有有效快捷方式,支持启用、禁用、删除、组内上移/下移和恢复。Windows 没有公开任意新建 WinX 项的受支持接口,因此不生成可能被系统拒绝的伪哈希快捷方式。
  • Windows 11 现代 / UWP 菜单:解析已安装包的 AppxManifest.xml,只列出明确声明 windows.fileExplorerContextMenus 的 IExplorerCommand CLSID;开关只写当前用户 Shell Extensions\Blocked,不修改应用包注册、文件或 ACL。
  • IE 旧式菜单:管理当前用户和所有用户的 Internet Explorer\MenuExt,支持添加、编辑、启停、删除和恢复;受保护位置拒绝访问时只报告错误,不接管权限。
  • 安全增强菜单:提供“复制完整路径”“用记事本打开”“在此处打开命令提示符”三项独立配方,不下载脚本、不取得 TrustedInstaller 权限,安装和移除都可从恢复中心撤销。

验证构建的 --advanced-menu-smoke 使用隔离的 WinX 目录和当前用户测试注册表,覆盖文件移动、IE 菜单、现代菜单屏蔽值、增强配方及恢复,并在结束后清理测试项。现代菜单识别依据微软的 File Explorer packaged context menu 文档,不会把普通 Packaged COM 误当成右键菜单。

发布前清理验收需单独编译验证版,正式发布版不带验收器,减少安全软件启发式误报:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Build-Exe.ps1 -ValidationBuild
.\dist\流氓软件克星\流氓软件克星.exe --acceptance-test

这个参数会创建带 CodexRogueCleanerTest 前缀的模拟右键菜单、开机启动、浏览器宿主、文件打开方式、计划任务和服务项,调用正式扫描/清理/恢复核心,再写入验收报告。

注意:服务项需要管理员权限;如果当前系统策略禁止创建注册表或计划任务模拟工件,报告里会显示 SetupFailed,不能把这种结果当成“功能已验证”。

原则

  • 不常驻后台。
  • 不加壳。
  • 不混淆。
  • 不静默更新。
  • 不绕过软件自保护。
  • 不改写 UserChoice。
  • 不默认卸载主程序。
  • 不删除用户文档。
  • 先备份,再清理,清理后复扫。

开源致谢

右键菜单管理的功能范围和交互设计参考了 ContextMenuManager,原作者为蓝点lilac。该项目采用 GNU GPL v3;流氓软件克星没有复制或嵌入其源码、资源字典和图片,相关功能依据 Windows Shell 与注册表行为独立实现,本项目继续采用 MIT 许可证。

Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 21, 2026

first spotted on the list

Best rank

#17

highest position reached

Appearances

1

times on the trending list

Quality score

90

out of 100

Momentum

20

trend strength indicator

Star velocity

0.17

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot

Not enough snapshots yet — check back soon.

Rank history

position on trending · lower is better

Not enough snapshots yet — check back soon.

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/aakk007/RogueCleaner" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="aakk007/RogueCleaner — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

aakk007/RogueCleaner stars badge
Markdown
[![aakk007/RogueCleaner](https://www.notionpulse.cc/api/badge/aakk007/RogueCleaner.svg)](https://www.notionpulse.cc/repo/aakk007/RogueCleaner)
HTML
<a href="https://www.notionpulse.cc/repo/aakk007/RogueCleaner"><img src="https://www.notionpulse.cc/api/badge/aakk007/RogueCleaner.svg" alt="aakk007/RogueCleaner stars badge" /></a>

Repository of the Day

#17 Repository of the Day

Repository of the Week

#17 Repository of the Week

Repository of the Month

#17 Repository of the Month