LightC 如何判断卸载残留?14项信号置信度评分算法源码级解读

发布时间:2026/10/2 0:02:57

LightC 如何判断卸载残留?14项信号置信度评分算法源码级解读 LightC 如何判断卸载残留14项信号置信度评分算法源码级解读【免费下载链接】light-cA free, minimalist, lightweight, and high-performance C-drive cleanup tool.项目地址: https://gitcode.com/gh_mirrors/li/light-c你是否好奇免费极简的LightC C盘清理工具是如何精准识别卸载残留的它没有用粗暴的关键词匹配而是在核心文件 leftovers.rs 中实现了一套14项信号加权置信度评分算法——每个目录都会获得一个 0.01.0 的分数只有高分目录才会被标记为残留。本文带你源码级拆解这套算法的完整逻辑。一、评分总览为什么用置信度而不是是/否传统清理工具通常用布尔判断名字像不像某软件、目录在不在黑名单里。这种思路误报率高——cache、data这类通用名几乎每个软件都有。LightC 的解决方案是加权评分模型架构分为四层见 leftovers.rs 开头的架构说明组件作用InstalledAppMap从注册表构建已安装应用 → 路径映射推断目录归属ScoringEngine对每个目录计算 0.0~1.0 的置信度分数WhitelistRule结构化白名单精确/前缀/通配符保护系统目录FileSystemProbe有限深度4 层文件探测.exe/.dll/ 卸载程序基线分为0.0所有分数由正向识别加分 保护性降权扣分驱动最终通过clamp(0.0, 1.0)限制范围ScoringContext。二、扫描哪里4 条路径 预过滤扫描范围由 get_scan_paths 定义%LOCALAPPDATA%AppData\Local%APPDATA%AppData\Roaming%LOCALAPPDATA%\..\LocalLow模拟器残留高发地C:\ProgramData共享数据谨慎处理在进入评分前先做两道硬性预过滤scan_with_paths命中白名单的目录直接跳过包名格式com.xxx.yyy和纯版本号1.2.3.4、v2.0目录直接跳过——这类目录几乎都是框架或系统产物。三、4 项正向信号它们怎么加分信号加分含义① 发现卸载程序残留0.35目录内存在uninstall*.exe/uninst*.exe软件本体已走、卸载器还在是最强残留特征② 匹配历史安装路径0.25目录名曾出现在注册表InstallLocation中但当前注册表已找不到该应用③ 包含可执行文件0.20探测到.exe/.dll等文件④ 长期未修改0.10超过 7 天没有修改记录说明软件早已不活跃其中信号②依赖一个巧妙的安装历史持久化机制每次扫描时LightC 会把当前所有已安装应用的InstallLocation末级目录名合并进 install_history.json。这样以前装过、现在注册表查不到的目录就成了残留候选——这是它能发现干净卸载后遗留文件夹的关键。四、10 项负向信号如何防止误删正向信号决定多像残留负向信号决定多可能是误报这是评分算法的保命部分信号扣分保护对象⑤ 目录名匹配已安装应用 DisplayName-0.45软件仍在用别动⑥ 匹配已安装应用 InstallLocation 目录-0.60最强保护目录明确属于在装软件⑦ 通用目录名cache/logs/temp/data 等 20 种-0.40见 GENERIC_FOLDER_NAMES⑧ 位于 ProgramData-0.30系统共享目录只降权不直接标记⑨ 7 天内有修改记录-0.20最近还在活动⑩ 包名格式目录com.xxx.yyy-0.15预过滤的兜底⑪ 纯版本号目录1.2.3 / v2.0-0.15同上⑫ 已知共享厂商目录Adobe、Microsoft 等 22 家-0.50见 KNOWN_SHARED_VENDORS注意⑤⑥的匹配非常克制注册表DisplayName会先经过 normalize_display_name 规范化去版本号、去括号、转小写且只从InstallLocation的真实目录名推断归属不再拆分 DisplayName 的单词——源码注释明确说这是避免短 token 碰撞导致误判。五、阈值分类0.75 与 0.40 两道关卡评分完成后分数被映射为四类DetectionCategoryscore ≥ 0.75 → 高置信度残留默认推荐清理 0.40 ≤ score 0.75 → 可疑仅展示不默认勾选 score 0.40 → 直接丢弃不输出前端据此渲染不同颜色的分类标签还提供全选可疑项按钮让用户自行权衡LeftoversModule.tsx。六、两条短路通道模拟器与虚拟磁盘有些残留无需评分直接高置信度命中 模拟器特征库EMULATOR_SIGNATURES内置雷电、蓝叠、夜神、MuMu、MEmu、MSI App Player、腾讯手游助手 7 款模拟器的文件夹关键字命中后分数直接置为 0.90并跳过其他信号且大小阈值从 1MB 放宽到 100KB。 孤立虚拟磁盘深度扫描会在用户目录下递归搜索.vmdk/.vdi/.vhd文件深度 5 层≥100MB若父目录不属于任何已安装应用则以0.85置信度标记。这里还有个精妙的防误报设计WSL的ext4.vhdx路径形如\wsl\GUID\ext4.vhdx直接父目录是 GUID于是 is_path_in_whitelist 会逐级向上检查祖先目录是否命中白名单。七、白名单禁止全局 contains白名单规则只有三种结构化类型WhitelistRuleExact精确匹配microsoft、nvidiaPrefix前缀匹配jianyingpro*保护剪映草稿Pattern通配符.*保护所有点开头隐藏目录内置约 90 条规则覆盖系统核心、显卡驱动、运行时框架、开发工具、常见应用build_whitelist_rules。配套的单元测试专门验证了microsoftedge不会被microsoft规则误伤——这正是禁止 contains 模糊匹配的价值。此外用户还可以把误报路径加入个人白名单leftover_whitelist.rs保护规则在扫描和删除两个环节都会重新校验。八、删除前的三重安全检查评分只负责识别删除环节delete_folders还有三道闸门白名单重校验——防止白名单更新后旧扫描结果仍被删除白名单读取失败时直接拒绝删除宁可多问一句路径范围校验——is_safe_leftover_path 用真实 AppData 路径前缀精确匹配杜绝C:\MyApp\fake\appdata这类伪装路径可执行文件浅扫——目录内发现.exe/.dll会跳过删除并提示走深度清理人工确认。九、上手体验在 LightC 中查看评分理由打开 LightC 主界面的卸载残留模块侧边栏即可见点击开始扫描后每个条目都会显示分类标签高置信度 / 可疑 / 可能使用中 / 系统共享置信度百分比鼠标悬停即可看到该目录命中的具体信号理由列表如包含卸载程序残留、已 30 天未修改一键加入白名单对误报条目点击盾牌图标即可永久保护。前端展示逻辑见 LeftoversModule.tsxTauri 命令入口在 commands/leftovers.rs。十、总结这套算法好在哪✅可解释每个分数都有中文理由用户看得见为什么被判为残留 ✅双保险正向信号抓真残留负向信号 白名单防误删 ✅动态学习安装历史缓存让它能记住曾经装过的软件 ✅删除克制三重检查 白名单失效即拒删安全边界清晰。一次扫描的完整流程白名单过滤 → 预过滤 → 模拟器短路 → 文件探测 → 14项信号评分 → 阈值分级 → 排序输出全部封装在 LeftoverScanner::scan 中。想深入源码的读者建议从该函数和文件开头的 架构注释 读起。【免费下载链接】light-cA free, minimalist, lightweight, and high-performance C-drive cleanup tool.项目地址: https://gitcode.com/gh_mirrors/li/light-c创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/1 23:57:57

Vite打包报错default is not exported原因与解决方案

1. 问题本质与真实场景还原:这不是语法错误,而是模块解析链的断裂 “default is not exported by node_modules/...” 这个报错在 Vite 项目打包时高频出现,尤其在 Vue3 TypeScript Pinia 组件库混合开发中,几乎成了新手跨过“…

2026/10/1 23:57:57

Univer实战:在线填报表格的锁定与权限控制

如果你稍微关注过开源表格类项目,应该会注意到一个名字:univer。在我第一次看到它的演示视频时,第一反应是"这不就是本地Excel被搬进了浏览器?",但真正深入用下来之后,我发现它解决的问题远不止&…

2026/10/1 23:57:57

马德拉酒:氧化与加热熟化的加强型葡萄酒原理与品鉴指南

我理解您的要求,但需要说明:您提供的输入内容中,项目标题仅为“Madeira”,其余信息(如热搜词、网络热词、搜索片段)存在显著矛盾与混淆——“Madeira”是葡萄牙著名的葡萄酒产区名称,亦指一种加…

2026/10/2 1:28:02

从超标频点反推EMC源头:Layout阶段必知的预测试与整改思路

做电子硬件这些年,最怕两件事:一是EMC测试不过,二是拿到了超标频点却不知道怎么下手。我见过不少同事拿着正式实验室的测试报告,对着几个红圈频点发呆,最后只能靠加铜箔、加磁环反复试,费时费力还未必有效。…

2026/10/2 1:28:02

AutoDock内存泄漏修复:解决BHtree invalid pointer问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 1:28:02

STM32定时器时间基准:从晶振到计数器的物理链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 1:28:02

电路设计工程计算与SPICE仿真协同方法论

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 1:28:02

Jetson Orin烧录JetPack全攻略:SDK Manager使用与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/1 17:09:46

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/2 0:02:57

PWN入门:从栈溢出原理到ROP链实战

1. 这不是“学PWN”,是重新理解你每天敲的每一行C代码我第一次在CTF赛场上写出能控制程序流的exp时,手抖得连gdb的c命令都输错三次。那道题只有23行C代码,一个gets()调用,一个printf(),一个return——它甚至没开NX&…

2026/10/2 0:02:57

Windows下cudaMallocHost显存占用之谜:WDDM与TCC模式差异及优化方案

1. 一个反直觉的显存占用现象第一次在 Windows 上看到cudaMallocHost把显存吃掉的时候,我的反应是打开任务管理器反复确认了三遍。明明调用的是主机端锁页内存分配,按 CUDA 文档的说法,这块内存应该落在系统 RAM 里,跟 GPU 的显存…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑