Skip to content

Releases: One-OK/Cslim

C-Slim v1.5.1 — 安全审计修复 / Security Audit Fixes

Choose a tag to compare

@One-OK One-OK released this 03 Sep 10:46

C-Slim v1.5.1 — 公开发布前第三轮安全审计修复

第三方级逐行复核确认的缺陷修复批次(工具将开放给陌生用户使用)。两条铁律贯穿全部改动:删除前必须验证路径/盘符取自真实环境

下载与运行

  1. 下载下方 C-Slim-v1.5.1.zip
  2. 解压到任意位置
  3. 右键 ①运行C盘瘦身.bat以管理员身份运行
  4. 首次使用建议先选 1 做一次诊断扫描,确认清单后再选 A 一键迁移
  5. 迁移用户文件夹后需注销或重启,资源管理器才会识别新路径

运行前请先看:① 备份重要数据;② 脚本未签名,SmartScreen / Defender 拦截时选「更多信息 → 仍要运行」;③ 目标盘剩余空间需 ≥ 待迁移数据量。

本次修复内容

P0 — 未经验证的删除(已修,2 处 + 1 处同型加固)

.orig 备份在确认其内容已完整存在于目标盘之前就被删除(它可能是中断迁移后仅存的副本)。现在统一走 CS-ClearStaleOrig:先逐字节校验 → 一致才改名 .old-<时间戳> 并排到重启清理;校验不通过则 WARN 并中止该目录迁移,备份原样保留。

P1 — 已修(9 项)

  • 单步按钮与 CLI 菜单不再用 -Auto 绕过迁移确认闸门(该闸门授权"自动强制关闭占用程序")
  • C-Slim.ps1 -Auto 分支补上全局同意确认
  • 回收站改为默认不清空,需显式 -EmptyRecycleBin
  • 保护路径改用环境变量解析(Windows 不在 C 盘的机器同样安全)
  • 占用进程匹配修正前缀边界(Documents 不再误伤 DocumentsBackup)并加空值守卫
  • 迁移中断后重跑可自愈(源缺失 + 备份在 + 目标在 → 重建链接)
  • 用户文件夹合并前做冲突预检,命中则跳过该文件夹、保留 C 盘原样
  • Known Folder 重指向后回读验证,未生效则不动源目录
  • Explorer 重启改为非提升令牌(临时 schtasks /RL LIMITED /IT),不再让 shell 长期以管理员运行

P2 — 已修(安全子集)

删除含 v1.2.0 事故逻辑的死代码 CS-RehomeLegacyData、修正 debloat 白名单笔误、robocopy 路径加引号、orphan 扫描去个人化、4 个迁移脚本补充目标盘存在性校验、精简/补充 README。

验证

  • 全仓 17 个 .ps1:语法 0 错误、UTF-8 BOM 17/17
  • 沙箱单测:CS-GetFolderConflictsCS-ClearStaleOrigCS-GetLockingProcesses 全部通过

完整历史见仓库内 CHANGELOG.md


C-Slim v1.5.1 — Third-Party Security Audit Fixes (round 3)

Fixes confirmed by a line-by-line audit ahead of public release. Two principles run through every change: verify before delete, and resolve paths from the real environment.

Download & run

  1. Download C-Slim-v1.5.1.zip below
  2. Extract anywhere
  3. Right-click ①运行C盘瘦身.batRun as administrator
  4. First run: choose 1 for a diagnostic scan, review the list, then A for one-click migration
  5. Log off or reboot after migrating user folders so Explorer picks up the new paths

Before you start: ① back up important data; ② the scripts are unsigned — if SmartScreen/Defender blocks them, choose More info → Run anyway; ③ the target drive needs at least as much free space as the data being migrated.

What changed

P0 — unverified deletion (fixed, 2 sites + 1 hardening)

A stale .orig backup could be deleted before proving its content already exists at the destination — it may be the only surviving copy after an interrupted run. All such sites now go through CS-ClearStaleOrig: verify first, then rename aside and schedule reboot cleanup. If verification fails, the folder is skipped and the backup is kept.

P1 — 9 items fixed

Per-step confirmation gate restored (no more -Auto bypass); global consent added to -Auto; recycle bin no longer emptied by default (opt-in -EmptyRecycleBin); protected paths resolved from environment variables; process-lock prefix matching fixed; interrupted migrations self-heal; user-folder merge conflicts are detected and skipped (C: kept intact); Known Folder repoint is re-read and verified; Explorer restarts with a non-elevated token.

P2 — safe subset

Dead CS-RehomeLegacyData removed, debloat whitelist typo fixed, robocopy paths quoted, orphan scan de-personalized, drive-existence guards added, READMEs updated.

Verification

  • All 17 .ps1 files: 0 syntax errors, UTF-8 BOM 17/17
  • Sandbox unit checks for CS-GetFolderConflicts, CS-ClearStaleOrig, CS-GetLockingProcesses all pass

See CHANGELOG.md in the repository for the full history.