彻底卸载 360 安全卫士
何时用本技能
出现以下任一情形即适用:
- 要在「设置 → 应用」里卸载,但列表里找不到 360 安全卫士(注册表
Uninstall键里没有它) uninst.exe双击/命令行秒退、无窗口、无输出,一个文件都没删- 安装目录删不掉,报「访问被拒绝」或删除工具报
trash-failed - 注册表
360*服务键写不进去,报「不允许所请求的注册表访问权」 - 已卸载但怀疑有残留(开机启动项、托盘图标、弹窗、浏览器主页被改)
核心原理(先懂这个,后面所有步骤才讲得通)
360 安全卫士靠内核文件系统微过滤器驱动保护自己。只要系统正常运行,这些驱动就会阻止删除它的文件和注册表项——权限再高也没用,管理员也没用。
| 驱动 / 服务 | 作用 | 造成的后果 |
|---|---|---|
360FsFlt |
FSFilter 文件系统过滤驱动,挂在所有卷上 | 锁死安装目录与注册表键(头号障碍) |
360Box64 |
FSFilter 沙箱过滤驱动 | 同上 |
360AntiHijack |
防劫持保护 | 保护自身注册表项 |
ZhuDongFangYu |
主动防御服务 | 拦截对自身的任何修改 |
唯一解法:让这些驱动不要加载 —— 即进入「安全模式(带网络)」。
> 原理:安全模式只加载 SafeBoot 白名单里的驱动。360 系驱动通常不在白名单内,进安全模式后「目录锁」和「注册表保护」两个卡点同时解除。
> 不要试图在正常模式下强杀或强删,只会反复拉锯。
总体流程
| 阶段 | 动作 | 需重启 | 用什么 |
|---|---|---|---|
| 0 | 侦察:摸清装了什么、在哪、有无卸载入口 | 否 | scripts/01_scan_residue.ps1 |
| 1 | 备份:注册表键值、驱动配置、目录清单 | 否 | 手动(见下) |
| 2 | 常规卸载尝试(可选,非标安装直接跳过) | 否 | 手动 |
| 3 | 主力手段:设安全模式启动 → 重启 → 跑清理脚本 | 是(1 次) | scripts/02_cleanup_safemode.ps1 |
| 4 | 深度清理:开机启动项、残留注册表键、Defender 排除项、防火墙孤儿规则 | 否 | 手动 + scripts/03_system_context_fix.ps1 |
| 5 | 边角残留:AppData、预取文件、360 专属备份区、临时文件 | 否 | 手动 |
| 6 | 验收:全项复查,确认无残留、无复活 | 否 | scripts/01_scan_residue.ps1 |
阶段 0 · 侦察(只读,不改任何东西)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\01_scan_residue.ps1
脚本输出覆盖:进程 / 服务 / 驱动 / Services 注册表键 / Software 树 / Run 启动项 / Uninstall 项 / Defender 排除项 / 防火墙规则 / 计划任务 / 关键目录 / drivers\*.sys / 浏览器 BHO 与外壳扩展 / 预取文件。
侦察结论决定走哪条路:
| 侦察发现 | 结论 |
|---|---|
Uninstall 键里有 360 安全卫士 |
标准安装,优先走 阶段 2 正常卸载 |
Uninstall 键里没有,但目录存在 |
非标安装(绿色版/被改装),阶段 2 无意义,直接跳阶段 3 |
uninst.exe 存在但秒退 |
同上,直接跳阶段 3 |
⚠️ 关键区分:360 安全卫士 ≠ 360 压缩(360zip)
C:\Program Files (x86)\360\360zip、AppData\Roaming\360zip、ProgramData\360zip、计划任务 360ZipUpdater、注册表 360zip 键、防火墙 LiveUpdate360/360zipUpdate.exe 规则 —— 这些属于 360 压缩,是独立产品,有正常的卸载入口。
动手前必须问清用户:360 压缩是保留还是也卸? 不要擅自一并删除。本技能所有脚本默认保护 360zip。
阶段 1 · 备份(必做,出事能回滚)
在做任何删除前,把下面四样存到工作目录:
- 驱动与服务注册表原值 —— 逐个记录
HKLM\SYSTEM\CurrentControlSet\Services\<名称>下的全部值与子键。重点是Start值(1=System,2=Auto,3=Manual,4=Disabled)。 .reg一键还原文件 —— 把驱动键的原始值写成可双击导入的.reg(用 ASCII 编码保存)。- 目标目录清单 —— 路径、体积、文件数、最后修改时间。
- 服务详情 ——
ZhuDongFangYu等服务的ImagePath、DisplayName、Start。
优先用 PowerShell 原生方式导出注册表(Get-Item + GetValueNames()),因为 reg.exe 在多数受管环境里被安全策略禁用。
阶段 2 · 常规卸载尝试(可选)
标准安装的机器可以一试:
- 先在 360 界面里关闭「自我保护」(设置 → 安全防护中心 → 自我保护),否则卸载必失败
- 在「设置 → 应用 → 已安装的应用」里卸载;或点开始菜单里的卸载快捷方式
非标安装不必浪费时间:实测这类 uninst.exe 只会「关掉自己的进程」然后秒退,文件删除阶段根本不执行——它本身就是被裁剪过的残件。
阶段 3 · 主力手段:安全模式清理
3.1 设定安全模式启动
不要用 msconfig 手点(用户极易点错到「常规」选项卡,那一页是「启动选择:正常启动/诊断启动/有选择的启动」,不是「引导」页)。直接用命令行:
bcdedit /set "{current}" safeboot network
bcdedit /enum "{current}" # 出现 safeboot Network 即成功
3.2 重启进入安全模式
重启后确认两件事:
# ① 确已在安全模式
(Get-CimInstance Win32_ComputerSystem).BootupState
# 期望:Fail-safe with network boot
# ② 关键驱动没加载(这是能否删成的判据)
Get-CimInstance Win32_SystemDriver -Filter "Name='360FsFlt'" | Select Name, State
# 期望:Stopped
若 360FsFlt 仍为 Running,说明它被列入了 SafeBoot 白名单(少见)。此时不要强行删除,改用阶段 4 的 SYSTEM 上下文方式处理。
3.3 执行清理脚本
# 安全模式 + 管理员权限
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\02_cleanup_safemode.ps1 -ExtraTargetsFile extra.txt
-ExtraTargetsFile 可选:一个 UTF-8 文本文件,每行一个额外要删的路径(用于含中文的路径,如 F:\360用户文件),# 开头为注释。
脚本完成四件事,并在结尾自动清除安全模式标志(防止用户困在安全模式):
- 结束 360 系进程(跳过任何名字含
zip的) - 删除
ZhuDongFangYu服务 +Services下的 360 键(含360/Qihoo/ZhuDong前缀扫描兜底) - 删除
System32\drivers\360*.sys与安装目录 bcdedit /deletevalue "{current}" safeboot恢复普通启动
3.4 重启回普通模式
脚本已自动清除 safeboot,直接重启即可回到普通模式。
阶段 4 · 深度清理(重启之后)
这一阶段专治「主体删了但到处是尾巴」。逐项做,不要跳。
4.1 开机启动项 —— 最容易漏的一处
必须直接读 Run 键,不要只依赖 Win32_StartupCommand:
foreach ($rk in @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
)) {
$it = Get-Item $rk -ErrorAction SilentlyContinue
if ($it) { foreach ($n in $it.GetValueNames()) { "$rk :: $n = $($it.GetValue($n))" } }
}
> 实测坑:Win32_StartupCommand 照不到 WOW6432Node\Run 下的 360Safetray(指向已删除的 360tray.exe),而这条正是最隐蔽的残留。三个 Run 键(外加 RunOnce)都要查。
4.2 残留注册表键
按前缀清除,但保留 360zip 与 LiveUpdate360:
| 位置 | 典型键名 |
|---|---|
HKLM\SOFTWARE\WOW6432Node |
360DrvMgr、360Safe、360se6 |
HKCU\SOFTWARE |
360、360Safe、360DayPop(弹窗推广)、360se6 |
4.3 Defender 排除项 —— 危险后门,必须清
360 会在 Defender 里塞排除路径,等于让杀毒跳过整个目录前缀:
(Get-Item 'HKLM:\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths').GetValueNames()
实测残留示例:名为 C:\Program 的值(等效于排除整个 C:\Program Files)。
该键归 NT AUTHORITY\SYSTEM 所有,Administrators 只有读权限,直接删会报 SecurityException:不允许所请求的注册表访问权。且 Remove-MpPreference 在三方杀软接管、Defender 服务停用时会报 0x%1!x!。
正解:用 SYSTEM 身份执行:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\03_system_context_fix.ps1 `
-RemoveDefenderExclusion 'C:\Program'
4.4 防火墙孤儿规则
Get-NetFirewallRule | Where-Object { $_.DisplayName -match '360|Qihoo' } |
ForEach-Object { $af = $_ | Get-NetFirewallApplicationFilter; "$($_.DisplayName) -> $($af.Program)" }
删除指向已不存在程序的规则(如 360secore.exe,其文件已随 AppData 目录被删)。
保留 LiveUpdate360、360zipUpdate.exe(属 360 压缩)。
4.5 浏览器挂钩与劫持点
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks',
'HKLM:\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers',
'HKLM:\SOFTWARE\Classes\Folder\shellex\ContextMenuHandlers',
'HKLM:\SOFTWARE\Classes\Drive\shellex\ContextMenuHandlers' -ErrorAction SilentlyContinue
> ⚠️ 绝对不要写 HKLM:\SOFTWARE\Classes\*\shellex\ContextMenuHandlers。 注册表 provider 会把 * 当通配符,展开整个 Classes 子树(几万个键),直接把 PowerShell 进程撑死——表现为零输出、无报错、退出码 1,非常难查。要扫"每个文件类的右键菜单项",只能用 .NET API 有界枚举(见 scripts/01_scan_residue.ps1 第 [10] 段的写法)。
同时验 AppInit_DLLs、Winlogon 的 Shell/Userinit、AppCertDlls、IFEO 映像劫持、SafeBoot 白名单、Winsock LSP、hosts 文件。完整清单见 references/residue-map.md。
阶段 5 · 边角残留
5.1 AppData 数据目录
360 全家桶会在用户目录留下大量目录:360se6(安全浏览器,可达数百 MB)、360Chrome、360browser、360huabao(画报)、360mobilemgr、360Login、360Safe。
先看最后修改时间:若都在一年前,说明已弃用,可安全删除;若近期有写入,先问用户(可能含浏览器书签、登录态)。360zip 一律保留。
5.2 360 专属备份区
360 清理垃圾时会建 X:\360RecycleBin(垃圾备份)和 X:\360用户文件\漏洞补丁目录(补丁缓存)—— 在非系统盘根目录,容易漏。内容多为哈希命名的 .png/.gif/.txt/.cab,属垃圾。
5.3 其他
C:\Windows\Prefetch\360*.pf(预读文件,如360TRAY.EXE-*.pf)AppData\Local\Temp\*360*AppData\Local\CrashDumps\360*.dmp(崩溃转储)- 开始菜单残留空文件夹(如
360安全中心)
阶段 6 · 验收
重跑侦察脚本,逐项确认:
| # | 检查项 | 通过标准 |
|---|---|---|
| 1 | BootupState |
Normal boot(已回普通模式) |
| 2 | bcdedit /enum {current} |
无 safeboot 值 |
| 3 | 360 进程 | 无(仅允许 360zip*) |
| 4 | 360 服务 / 驱动注册 | 零 |
| 5 | Services 注册表键 |
无 360/Qihoo/ZhuDong 前缀键 |
| 6 | System32\drivers\360*.sys |
零 |
| 7 | 开机启动项 | 无 360 项 |
| 8 | Software 树 |
仅剩 360zip / LiveUpdate360 |
| 9 | Defender 排除项 | 空 |
| 10 | 防火墙规则 | 仅剩 360zip 相关 |
| 11 | 计划任务 / 预取 / 临时文件 | 无 360 项 |
| 12 | 杀毒防线 | 有替代杀软在运行(如火绒 HipsDaemon) |
| 13 | 全盘文件复查 | *360* 命中项全部属于 360zip 或为误命中 |
> 全盘复查的误命中很常见,别当残留删:*_728x360.png(尺寸含 360)、哈希里含 360 的缓存文件、UVMap 360 Video(360 度视频)。
关键铁律(都是踩出来的,逐条遵守)
| # | 铁律 | 原因 |
|---|---|---|
| R1 | 先备份再动手 | 删驱动/改注册表不可逆;有 .reg 才能回滚 |
| R2 | 删除结果必须双通道交叉验证 | 受管环境的 Remove-Item 走「安全删除(回收站)」,返回值不可信:会报 trash-failed 却实际已删,也会让 Test-Path 误报「不存在」。必须换另一个执行通道(如 Bash 的 ls/find)复核 |
| R3 | 正常模式删不动就是驱动在锁,别硬碰 | 立刻转安全模式,不要在正常模式反复重试 |
| R4 | Remove-Item 失败就换 .NET 原生 API |
[System.IO.File]::Delete() / [System.IO.Directory]::Delete($p,$true) 可绕过回收站机制 |
| R5 | 属系统所有的对象,用 SYSTEM 上下文删 | 见 scripts/03_system_context_fix.ps1;这是解决「管理员也没权限」的正解 |
| R6 | 脚本文件内容保持纯 ASCII | 非 ASCII 符号(如 →)会导致内联脚本整体失败 |
| R7 | 在装的替代杀软要留着 | 卸掉 360 后必须有替代防线,否则系统裸奔;先确认它有常驻进程和服务 |
| R8 | 不要装第三方"强力卸载/优化"工具 | 双主动防御环境下会被拦,还可能引入新问题 |
| R9 | 注册表路径里不要出现 * 通配符 |
HKLM:\SOFTWARE\Classes\*\... 会让 provider 展开整个 Classes 子树并直接压垮 PowerShell 进程(零输出、无报错、exit 1,极难定位)。一律改用 .NET Registry.LocalMachine.OpenSubKey() 有界枚举 |
| R10 | 扫描脚本要"边扫边落盘" | 任一段崩溃都不至于丢掉整份报告;scripts/01_scan_residue.ps1 的 W() 已实现 write-through |
脚本清单
| 脚本 | 用途 | 何时运行 | 权限 |
|---|---|---|---|
scripts/01_scan_residue.ps1 |
只读全项侦察 + 验收复查 | 阶段 0 与阶段 6 | 管理员 |
scripts/02_cleanup_safemode.ps1 |
安全模式主体清理(进程/服务/驱动/目录/注册表) | 仅安全模式 | 管理员 |
scripts/03_system_context_fix.ps1 |
以 SYSTEM 身份删除受保护项(Defender 排除项、被锁文件) | 阶段 4/5 遇权限不足时 | 管理员 |
参考文档
references/residue-map.md—— 360 残留物完整位置地图(文件/注册表/防火墙/任务/浏览器挂钩)references/errors-and-fixes.md—— 报错 → 原因 → 解法速查表
回滚(万一重启后系统异常)
- 开机连按 3 次强制断电 → 进「自动修复」→ 高级选项 → 疑难解答 → 高级选项 → 启动设置 → 重启 → 按 F4 进安全模式
- 导入备份的
.reg恢复驱动原始Start值,或手工设回:
powershell Set-ItemProperty '<服务键路径>' -Name Start -Value 1 -Type DWord - 重启
切记:安全模式不加载第三方驱动,所以无论驱动怎么坏,安全模式一定进得去。