资讯详情

资讯详情

为什么抛弃PowerShell重写?流氓软件克星v2从脚本到C WinForms单文件架构的完整历程

【免费下载链接】RogueCleaner流氓软件克星扫描和清理 Windows 流氓右键菜单、自启动、计划任务、服务、浏览器插件和文件关联残留项目地址https://gitcode.com/gh_mirrors/ro/RogueCleaner点击查看免费下载流氓软件克星RogueCleanerv2 是一款用 C# WinForms 重写的 Windows 单文件清理工具专门扫描和清理流氓右键菜单、开机自启动、计划任务、后台服务、浏览器插件和文件关联残留。这篇文章完整复盘了它从 PowerShell 脚本版走到 C# 单文件架构的原因、设计决策与验证方式帮你看懂这次「从脚本到 C# WinForms 单文件」重写的来龙去脉。 先回答标题为什么 PowerShell 版本撑不下去了流氓软件克星 v1v1.0.0-preview发布时是一个「过渡架构」GUI exe RogueCleaner.ps1脚本 rules规则目录靠外部 PowerShell 脚本跑扫描和清理逻辑。它能用但缺点也很实在最终正是这几个问题逼出了重写痛点具体表现发布包脏用户要下 exe、.ps1、rules一堆文件还常被 WinRAR SFX 自解压外壳「藏」着缺文件、解压错目录就崩杀软误报难解释运行一个 exe 却往外释放 PowerShell 脚本安全软件天然警惕作者也说不清「为什么」高 DPI 卡顿200% 缩放下界面重排卡表格滚动掉帧扫描慢单线程串行跑各类注册表/服务/任务枚举误操作不可逆删错了没有恢复入口用户只能手动回滚注册表更新麻烦没有版本检查升级要手动下载整套文件一句话v1 是「能跑就行」的脚本工具v2 要做一个可恢复、可审查、可自动更新的单文件产品。这不是「换个语言」而是产品形态的整体升级。 v2 单文件架构的核心决策v2 最核心的决定只有一句话运行时只保留一个 exe其余全部内嵌或删除。1. 砍掉所有运行时 sidecar 文件v1 依赖这些外部文件v2 全部移除❌RogueCleaner.ps1运行时脚本引擎❌rules\*.json规则目录❌ WinRAR SFX 自解压外壳❌ base64 内嵌脚本规则数据改为 C# 源码中的普通结构化数据开源可审查。这样「发布物」就只剩一个文件流氓软件克星.exe2. 运行目录约定exe 放哪数据就建在哪程序不会把自己搬家。你放桌面它就在桌面同目录建一个数据目录流氓软件克星数据\ ├── reports # 扫描/清理/复扫报告 ├── backups # 清理前备份 ├── logs # 错误日志 ├── updates # 更新检查状态 ├── quarantine # 被移动隔离的文件 ├── state # 更新检查等运行状态 └── feedback # 脱敏识别反馈这个设计直接回应了 v1「目录散落、缺文件就崩」的抱怨——单文件 单一数据目录用户一眼能看全。3. 编译方式用 Windows 自带的 .NET Framework 编译器v2 保留C# WinForms .NET Framework 4.x兼容性覆盖 Win7 SP1 / Win10 / Win11。构建脚本 Build-Exe.ps1 调用系统自带的csc.exe把 src/v2/ 下所有.cs编译成单 exepowershell -NoProfile -ExecutionPolicy Bypass -File .\Build-Exe.ps1输出就是根目录的流氓软件克星.exe发布目录 dist\流氓软件克星 里也只有一个 exe。程序入口和版本信息定义在 RogueCleanerV2.cs 的AppMeta里。 多线程扫描引擎从串行脚本到并行 C#v1 的 PowerShell 是串行跑的v2 把扫描拆成 10 类扫描器用Parallel.Invoke并行执行并发数取min(4, CPU 核心数)。扫描入口在 ScannerEngine.ScanAll右键菜单传统shell/shellex/ Win11 注册项「此电脑」/资源管理器导航栏入口开机启动注册表Run、RunOnce启动文件夹Windows 后台服务计划任务浏览器插件Chrome/Edge 扩展策略、Native Messaging Host、Firefox文件关联图片/视频/压缩包/Office 的打开方式残留隐藏卸载入口正在运行的弹窗/守护进程每个扫描器内部再按注册表 root 分片并行但限制并发避免卡系统。UI 侧用「先显示进度、分批追加结果、固定行高、关闭自动换行重算」的策略专治高 DPI 下的表格卡顿——这正是 v1 最被吐槽的点之一。所有扫描结果统一成一个Finding对象见 Finding字段包括Risk、Vendor、UserVisibleName、UserImpact、TechnicalLocation、Evidence等。UI 只显示人话「在哪里冒出来」「用户会看到什么」「工具会怎么处理」技术路径和证据放到悬停详情里——v2.0.3 专门为此把Safe360Ext、Q360AMPPL这类技术名换成了普通用户能看懂的描述。️ 备份 → 清理 → 复核 → 复扫防止误操作的完整闭环这是 v2 相对 v1 最「值钱」的升级清理前备份清理后复核并复扫。流程固定为 7 步用户勾选项目二次确认显示高风险数量和需要管理员权限的数量为每一项写备份执行清理动作逐项复核目标是否真的消失/禁用自动复扫UI 显示成功、失败、跳过、残留清理失败绝不显示为完成——权限不足、软件自保护、目标被立即重建、路径已变化失败项会保留在复扫列表并显示具体原因。恢复中心误删可回滚每次清理生成一个备份批次存在流氓软件克星数据\backups\。主界面点「恢复中心」可以按批次回滚注册表、被移动文件、服务启动状态和计划任务状态。支持整批恢复 / 单项恢复注册表恢复带 32/64 位视图/reg:32或/reg:64只有全部恢复成功才删除批次记录任意一项失败就保留并显示原因文件恢复时若原位置已有同名文件不覆盖、不删备份避免误伤用户文档配套原则不常驻后台、不加壳、不混淆、不静默更新、不绕过软件自保护、不改写UserChoice、不默认卸载主程序、不删除用户文档。 版本更新与杀软误报处理v2.0.6 起更新走「软件内弹窗确认下载 → 自动替换 exe → 自动重启」的闭环不再跳 GitHub 页面让用户手动下。检查逻辑按天缓存到流氓软件克星数据\state绝不静默更新——只有用户点确认才下载 Release 里的直出 exe 并替换。关于杀软误报这个工具会读取/备份/删除注册表、禁用服务和计划任务天然容易被启发式规则归为「系统工具类风险」。项目的应对策略是用透明度换信任——源码、构建方式、规则全部公开可审查发布包只含 exe 和 SHA256 校验值正式版还会移除验收测试器特征进一步缩小误报面。详见 release/火绒误报回复.md 和 release/Win10Win11报错回复.md。 如何构建与验证单文件 EXE想自己编译或审查源码克隆仓库后一条命令构建git clone https://gitcode.com/gh_mirrors/ro/RogueCleaner cd RogueCleaner powershell -NoProfile -ExecutionPolicy Bypass -File .\Build-Exe.ps1v2 还内置了几个「烟测」参数不弹 GUI、不清理专供开发自检参数作用--scan-smoke只扫描并写报告验证扫描链路--identity-smoke验证厂商身份识别不误报Corel GUID 含2345、系统 MSI 宿主等负向用例--feedback-smoke验证反馈脱敏不泄露用户名/SID/邮箱等--ui-smoke检查按钮可见性、详情面板、截图写入 reports发布前的完整验收会用Build-Exe.ps1 -ValidationBuild单独编译验证版跑 10 个模拟工件右键、开机启动、浏览器宿主、打开方式、计划任务、服务等标准是RunnableCases10, Passed10, Failed0见 docs/validation/2026-07-20-v2-acceptance.md。正式发布版不含验收器只为缩小误报面。 从 v1 到 v2.0.6 的版本演进完整变更记录见 release/1.0到2.0.6更新说明_52pojie.md关键节点v2.0.1确立「不能静默卸载就弹原厂卸载器」的边界修复同一注册表键下多个启动项备份互相覆盖v2.0.2修表格 tooltip 横向无限延伸、风险列颜色、EXE 发布包只含 exev2.0.3把技术名换成「人话」收紧 WPS/bili/ASUS 等宽泛关键词降低误报v2.0.4恢复中心重做为青绿色主题不再是默认灰白 WinFormsv2.0.5恢复中心「真的恢复」——逐项执行并逐项复核支持 32/64 位注册表视图v2.0.6软件内自动下载更新 恢复中心兼容旧版本备份记录注意从 v2.0.5 升到 v2.0.6 这一次仍可能需手动下载一次因为 v2.0.5 自身还是旧更新逻辑装上 v2.0.6 后后续版本就走软件内自动下载重启了。✨ 总结这次重写到底解决了什么流氓软件克星 v2 从 PowerShell 脚本到 C# WinForms 单文件不是「换个语言」而是把「能跑就行」的脚本工具升级成一个可恢复、可审查、可自动更新的单文件产品单文件告别.ps1/rules/ SFX 外壳用户只下一个 exe多线程10 类扫描器并行告别串行慢扫描和高 DPI 卡顿可恢复备份→清理→复核→复扫恢复中心按批次回滚可审查源码、构建脚本、规则全公开SHA256 校验正式版缩小误报面可更新软件内弹窗确认下载、自动替换重启绝不静默核心原则始终如一先备份、再清理、再复扫宁可少删也不替用户乱删。想深入看架构可以读 docs/superpowers/specs/2026-07-20-v2-single-file-design.mdv2 单文件设计和 docs/superpowers/specs/2026-08-04-vendor-identity-false-positive-design.md厂商识别误报治理。源码主文件在 src/v2/RogueCleanerV2.cs主题定义在 src/v2/UiTheme.cs。赞分享【免费下载链接】RogueCleaner流氓软件克星扫描和清理 Windows 流氓右键菜单、自启动、计划任务、服务、浏览器插件和文件关联残留项目地址https://gitcode.com/gh_mirrors/ro/RogueCleaner点击查看免费下载相关推荐FastAPI数据库迁移Alembic版本控制完全指南FastAPI数据库迁移Alembic版本控制完全指南 FastAPI作为高性能的现代Python Web框架在处理生产环境数据库变更时需要可靠的版本控制方后端Web框架API设计CC Switch深度链接3分钟掌握一键配置导入的终极技巧CC Switch深度链接3分钟掌握一键配置导入的终极技巧 还在为AI助手的繁琐配置头疼吗CC Switch的深度链接功能ccswitch://彻底改变了这AI 应用开发者工具桌面应用从卡顿到丝滑为什么开发者正在抛弃asdf转向mise从卡顿到丝滑为什么开发者正在抛弃asdf转向mise 你是否也曾经历过这样的场景每次打开终端等待100ms以上才能输入命令切换项目时因 runtime开发工具CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →