368 字
2 分钟
卸载管理器 v0.0.3 发布:安全加固 F1–F10
v0.0.3 以“纵深防御”为目标,对命令注入、路径绕过、DLL 种植、缓存投毒和意外提权等攻击面进行了系统加固。完整审计过程见本地 tools/security_audit_report.md。
命令注入与路径绕过
- F1 PowerShell 命令注入:自卸载桩对
InstallLocation中的单引号做转义(''),powershell.exe改用System32\WindowsPowerShell\v1.0\完整路径。 - F2 reg.exe 参数注入:提权删注册表前校验键名不含
",含则拒绝;reg.exe改用System32完整路径。 - F3 8.3 短名绕过:
isProtectedPath比较前用GetLongPathNameW还原PROGRA~1等长名,防止误删 Program Files 目录。 - F4 裸系统二进制名:
reg.exe、powershell.exe、taskkill.exe、explorer.exe、regedit.exe、msiexec.exe全部改用GetSystemDirectoryW完整路径,杜绝 DLL/二进制种植。 - F5 UI 线程阻塞:提权删
reg.exe等待改为MsgWaitForMultipleObjects+ 消息泵,UAC 期间界面不再假死。
篡改与提权防御
- F6 DLL 种植劫持:
main()入口调用SetDllDirectoryW(L"")+SetSearchPathMode,从 DLL 搜索顺序移除当前目录、启用安全搜索模式。 - F8 缓存投毒:
uninstaller_cache.json增加 Sha256 + 盐完整性校验,被清空或篡改即丢弃并回退实时扫描。 - F10 UAC 清单缺失:新增
app.manifest与installer.manifest,显式声明asInvoker / uiAccess=false,修复因 exe 名含 “uninstall”/“Setup” 触发 Windows 自动提权的问题。
发布前必做
- 代码签名(Authenticode)需证书,当前环境无法签名;下载页与 Release 提供 SHA-256 校验值 作为替代校验手段。
下载
- GitHub Release:卸载管理器 v0.0.3 (试用版)
- 项目仓库:Cai-zhi-huang/uninstaller-portable
卸载管理器 v0.0.3 发布:安全加固 F1–F10
https://cai-zhi-huang.github.io/blog/posts/2026-08-26-uninstaller-v003/