那天晚上,朋友抱来一台“越用越卡”的办公笔记本,说C盘总是满,风扇动不动就狂转。我打开任务管理器,看到一个叫Synaptics.exe的进程占着30%左右的CPU,再点“打开文件位置”,路径是C:\Users\xxx\AppData\Roaming\Synares\Synaptics.exe。真正的Synaptics触控板驱动根本不会出现在这个目录里,VirusTotal上对这个文件的检测结果也齐刷刷标了毒,家族名称Virus:Win32/Synares。这种伪装的“驱动”文件藏在C盘用户目录下,配合计划任务和注册表启动项做持久化,杀毒软件如果只做快速扫描,很容易漏掉它。
网上关于这个病毒的讨论不少,但大多数帖子看完只能得到“用某某杀软扫一遍”这种结论式回答,真到了杀软查不到、或者删除后反复复活的时候,用户就完全没辙了。我这篇就把实际清理C盘隐藏Synaptics.exe的完整过程拆开讲一遍,包括病毒是怎么驻留的、手动清理时每一步在做什么、为什么这样做,以及清理后用来修复系统和资源的脚本怎么用、怎么改。
1. 感染初现:Synares病毒伪装成Synaptics.exe时,系统会露出哪些破绽
1.1 表面症状:CPU占用、磁盘占用和“离奇出现的触控板进程”
Synares感染之后,最直观的表现就是电脑变慢。我这个案例里,恶意文件会持续在后台执行网络通信任务,CPU占用率一般稳定在20%-40%,偶尔冲到50%以上,波动规律和正常软件完全不同。硬盘也经常被占满:一部分是它自己复制文件、释放临时载荷,另一部分是它把运行日志写到用户目录或临时目录里,日积月累就是好几个GB的垃圾。
用户最容易发现的破绽,是任务管理器里出现了一个名叫Synaptics.exe的进程。正版Synaptics确实是触控板驱动开发商,驱动正常程序叫synTPEnh.exe,位于C:\Program Files\Synaptics或C:\Windows\System32\drivers下。Synares病毒把恶意程序命名为Synaptics.exe,放在不显眼的Roaming目录下,目的就是让用户在任务管理器里“看着眼熟”。如果没留意具体路径,很容易把它当成驱动误认为是正常的。
任务管理器里,这还会呈现出两个很有迷惑性的表现:
- 进程用户列显示为当前登录账号或SYSTEM,看起来像是系统自带程序。
- 右键“转到详细信息技术”之后,CPU/Memory数字忽高忽低,没有规律,且持续存在。
这时候如果直接点“结束进程”,第一次大概率能结束,但过几分钟进程会重新出现。不用怀疑杀软失效的问题——这不是杀软不够强,而是它通过多个通道实现了自动重启,杀掉进程只是治标。
1.2 杀毒软件为什么“查到了却不处理”,或者说处理不干净
很多人的第一反应是先跑一遍杀毒。Synares家族在VirusTotal上的检测率其实不算低,不少主流引擎都能报毒。问题在于,查杀和完整清除不是一回事。
杀毒软件查杀文件时,通常会做几件事:扫描文件特征、比对病毒库、隔离文体,并尝试清理掉关联的启动项。但Synares做了三层准备:
第一层,文件本身分散在多个位置。除了Roaming下的Synaptics.exe,还有可能在临时目录、ProgramData目录和Windows目录下各放一份副本。杀软隔离了其中一个,其余副本会从注册表或计划任务里重新把主文件拉回来。
第二层,进程有自我保护。它监控自己的进程是否被终止,一旦发现自己退出或被外接操作,就从另一份副本重新拉起。这种“双进程互保”的机制在木马程序里很通用,Synares用起来也是老一套。
第三层,启动渠道不止一个。注册表Run键是一个,计划任务又是一个,WMI事件订阅在某些变体里也有。杀软通常能处理Run键,但计划任务的清理往往需要管理员权限,或者因为任务名称起得很像系统服务(比如“MicrosoftWindowsUpdate”),杀软不敢直接动,最后就只能隔离文件,留下任务项。
所以,杀软“查到了”很容易,“清除干净”需要用户手动介入。这也是我写这篇文章的动机:把清理链路拆成模块,自己盯着每一步做,比全自动工具更靠谱。
1.3 确认感染的判断标准:别把正版驱动误杀,也别放过恶意副本
清理之前先要把“确认”这一步做扎实。判断一个Synaptics.exe到底是不是病毒,我一般按下面的顺序来:
- 看路径:是否在用户目录、Temp目录、ProgramData等非系统程序目录里。
- 看签名:右键文件,属性,数字签名页签,看是否有Synaptics公司的有效签名,通常恶意副本是无签名或伪造签名。
- 看启动项:注册表
HKCU\Software\Microsoft\Windows\CurrentVersion\Run和HKLM下是否登记这个文件。 - 看计划任务:运行
taskschd.msc,找名称带有Synaptics、Synares等任意可疑项。 - 看网络连接:资源监视器里,观察这个进程是否有大量远程连接。
如果以上任意两项命中,基本可以判定不是正版驱动。
这里有一个容易误伤的情况:某些厂商的OEM笔记本确实会把Synaptics或Synaptics相关的工具放在非标准位置。如果你不确定,把文件的MD5值丢到VirusTotal查一下,看厂商的检测结果;或者先用Process Explorer查看这个进程加载的DLL、打开的网络连接,列详细信息之后再决定是否清理。
2. 动手前先摸清底细:Synares的文件布局与注册表驻留机制
2.1 病毒文件都藏在哪里:C盘常见落点
Synares不是一个单一文件,而是多个文件组成的执行链。我在实际清理中观察到,大部分变体倾向于把主体文件放在以下几个位置:
| 路径 | 作用 |
|---|---|
C:\Users\用户名\AppData\Roaming\Synares\ | 主执行目录,Synaptics.exe通常在这里 |
C:\Users\用户名\AppData\Local\Temp\ | 释放临时载荷和更新包 |
C:\ProgramData\Synares\ | 需要全盘权限时使用的副本 |
C:\Windows\Temp\ | 系统级临时目录的副本 |
C:\Windows\System32\tasks\ | 计划任务的XML定义存于此(多为系统级隐藏) |
其中,Roaming目录下的Synares文件夹是“老巢”。恶意程序通过SHGetKnownFolderPath拿到用户AppData路径,然后创建Synares子目录,把Synaptics.exe放进去。之所以选AppData,是因为这个目录默认不显示,用户很少手动浏览,而且杀毒软件扫描时也会优先跳过一些信任区或缓存区,算是Windows平台木马的天然掩体。
2.2 注册表启动项里写的是什么
感染之后,病毒会在注册表中建立自启动关联,这是最容易被发现的部分,也是最容易被忽略的部分。
常见注册表位置包括:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
键值名称往往就叫Synaptics或Synares,数据指向Synaptics.exe的完整路径。有些变体还会顺手加一个/silent参数,启动时不开窗口。
RunOnce键则比较贼:它计划在下次登录时执行一次,但病毒会在执行后把该键再次写入,形成“每次都RunOnce”的效果,目的是在杀毒软件查启动项时,看到的是一个不常驻的键,从而被一些经验不丰富的分析者忽略。
2.3 计划任务里的“死而复生”机制
Synares最烦人的地方不是注册表,而是计划任务。它会创建一个以管理员身份运行的计划任务,触发器设为“用户登录时”或“每5分钟重复执行”,操作指向Synaptics.exe。
如果只删文件、不改计划任务,下次任务触发时,系统会去执行已不存在的文件,这时虽然通常会报错,但只要文件恢复(比如Run键又拉起了另一份副本),任务链就重新激活。更隐蔽的是,计划任务的名称可能伪装成MicrosoftEdgeUpdate或AdobeFlashUpdate,不仔细核对触发器,很难第一时间发现。
检查计划任务时,我建议用PowerShell而不是图形界面:
Get-ScheduledTask | Where-Object { $_.Actions.Arguments -like "*Synaptics*" -or $_.Actions.Execute -like "*Synaptics*" }这个命令会列举所有任务,过滤出与Synaptics相关的那条。如果图形界面里看名字没头绪,用这个命令按操作路径过滤是最快的。
3. 手动清除实战:从安全模式到逐文件清理的完整步骤
3.1 第一步:断开网络并进入安全模式
杀毒或清毒的最优原则是“让恶意程序先停手”。Synares这类木马需要网络才能保持连接、下载更新,断网能切断它的一半能力。
推荐的操作顺序:
- 拔掉网线,或者关闭无线网卡。
- 打开命令提示符(管理员),输入
shutdown /r /o进入WinRE恢复环境。 - 选择“疑难解答” > “高级选项” > “启动设置” > “重启”。
- 重启后按数字键
4或5进入安全模式。
进入安全模式后,没有网络,普通计划任务也不会自动触发(部分计划任务即使不触发,文件还在),这时的环境非常适合手动清理。
不要在当前正常模式下直接删文件。Synaptics.exe进程一旦检测到文件被删除,会尝试从另一份副本恢复它。安全模式能最大程度降低“边删边复活”的概率。
3.2 第二步:用工具列出所有相关进程、文件和注册表项
在安全模式下,打开命令提示符(管理员),先做一次“清点”:
wmic process where "name='Synaptics.exe'" get ProcessId,ExecutablePath,CommandLine如果进程还在,记下PID和完整路径,使用taskkill /PID <PID> /F强制结束。接着检查文件:
where /r C:\ Synaptics.exe这个命令会递归搜索C盘所有含有Synaptics.exe的位置。如果输出结果里有多个路径,全部记录下来,后续一并删除。同时检查Synares目录:
dir /s /b C:\Users\*\AppData\Roaming\Synares如果输出为空,说明主目录可能不在Roaming下,再检查ProgramData:
dir /s /b C:\ProgramData\Synares注册表方面,用reg query查询启动项:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /s看到Synaptics或Synares键值时,不要急着动手,先截图或记下原值,后面清除时需要精确删除。
3.3 第三步:结束进程并删除文件
确认没有漏掉任何进程后,按记录好的路径逐一删除:
del /f /q "C:\Users\用户名\AppData\Roaming\Synares\Synaptics.exe" rd /s /q "C:\Users\用户名\AppData\Roaming\Synares"如果提示文件被占用或权限不足,多半是进程没有彻底结束,或者杀毒软件还挂着对该文件的句柄。按下面的办法处理:
- 再用一次
tasklist | findstr Synaptics确认没有残留进程。 - 如果仍提示权限问题,右键文件——属性——安全,给当前用户添加“完全控制”权限后,再删除。
- 不要用第三方文件粉碎工具,这类工具有时会连带破坏文件系统索引,得不偿失。
临时目录里的副本也别放过:
del /f /q "C:\Users\用户名\AppData\Local\Temp\Synaptics.exe" del /f /q "C:\Windows\Temp\Synaptics.exe"没有找到的文件路径就跳过,找到的重点清理。
3.4 第四步:清除注册表键值和计划任务
文件删完后,清理注册表:
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v Synaptics /f reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v Synaptics /f如果Run下的键名不叫Synaptics,而是Synares或一串随机字符,先用reg query确认名,再删。关键是别删掉正常的Synaptics触控板驱动注册表项——那通常是HKLM\SOFTWARE\Synaptics这样的独立子键,和Run键完全是两码事。
计划任务的清理用schtasks:
schtasks /query /fo csv | findstr /i "Synaptics Synares"找到任务名后删除:
schtasks /delete /tn "任务名" /f这里有个细节:如果计划任务“每次登录触发”,任务名可能带用户名或日期后缀,删除前把完整任务名抄下来,别用通配符一把梭,避免误删系统任务。
3.5 第五步:验证清理结果
清理结束后,重启回到正常模式验证三件事:
tasklist里不再有Synaptics.exe。- 注册表Run键里Synaptics相关键已消失。
schtasks /query里找不到相应计划任务。
还可以用Sysinternals的Autoruns工具,把启动项、计划任务、服务三大类全部列出来,按“签名为空”筛选一遍,看还有没有可疑项。
通过以上步骤,绝大多数Synares变体可以被完全清除。但文件清理只是前半程,后半程是系统修复和资源恢复,这部分我认为更重要。
4. 资源修复脚本的设计思路与使用说明
4.1 为什么清理后还需要“资源修复”
清毒过程动过注册表、计划任务和文件属性,加上恶意程序可能已经破坏了部分系统配置,直接拿去办公容易出现各类“后遗症”:
- 计划任务被误删后,依赖它的Windows更新或其他组件无法正常触发。
- Run键里的其他启动项被干扰,某些软件开机不再自启。
- 系统文件可能被恶意程序替换或删除,SFC扫描会发现不一致。
- Windows Defender的某些策略可能被病毒篡改,比如把实时保护关掉、排除某些目录。
所以,清理之后跑一个修复脚本是有必要的。它不负责杀毒,只负责“恢复原状”。
4.2 脚本全文
下面这个PowerShell脚本是我在实际清理后使用的版本,整合了系统文件检查、计划任务修复、注册表自启动项整理和Defender策略恢复。根据你自己机器的具体情况,可以增减内容。
# 需要以管理员身份运行 # 用途:清理Synares病毒之后的系统资源修复 Write-Host "===== 1/5 清理可能残留的Synaptics启动项 =====" -ForegroundColor Cyan $runKeys = @( "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run", "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run", "HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce", "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce" ) foreach ($key in $runKeys) { if (Test-Path $key) { $props = Get-ItemProperty $key $props.PSObject.Properties | ForEach-Object { if ($_.Value -like "*Synaptics*" -or $_.Value -like "*Synares*") { Remove-ItemProperty -Path $key -Name $_.Name -Force Write-Host "已删除启动项: $key -> $($_.Name)" -ForegroundColor Green } } } } Write-Host "===== 2/5 检查并清理Synares计划任务 =====" -ForegroundColor Cyan $tasks = Get-ScheduledTask | Where-Object { $_.Actions.Arguments -like "*Synaptics*" -or $_.Actions.Execute -like "*Synaptics*" -or $_.TaskName -like "*Synares*" } foreach ($task in $tasks) { Unregister-ScheduledTask -TaskName $task.TaskName -Confirm:$false Write-Host "已删除计划任务: $($task.TaskName)" -ForegroundColor Green } Write-Host "===== 3/5 运行SFC与DISM修复系统文件 =====" -ForegroundColor Cyan sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth Write-Host "===== 4/5 恢复Windows Defender实时保护 =====" -ForegroundColor Cyan # 保险起见先重置策略,再重新开启服务 Set-MpPreference -DisableRealtimeMonitoring $false Set-MpPreference -ExclusionPath @() Start-Service WinDefend -ErrorAction SilentlyContinue Write-Host "===== 5/5 检查网络连接是否存在可疑监听端口 =====" -ForegroundColor Cyan Get-NetTCPConnection -State Listen | Sort-Object LocalPort | Format-Table -AutoSize Write-Host "资源修复脚本执行完毕,建议重启一次系统。"4.3 脚本逐段说明
第一部分处理注册表启动项。脚本遍历四个Run键的位置,找出值里包含Synaptics或Synares的项并删除。这样即使手动清理时遗漏了某个RunOnce键,脚本也会补漏。
第二部分处理计划任务。通过Get-ScheduledTask筛选出参数里含Synaptics或任务名含Synares的任务,然后Unregister-ScheduledTask删除。刚才手动删除时如果只删了一个,或遗漏了隐藏在“AdobeFlashUpdate”名称下的变种,脚本会用执行路径关键词捞回来。
第三部分是系统文件修复。SFC和DISM是目前Windows 10/11上恢复系统文件完整性的标准组合。SFC负责扫描受保护的系统文件并修复,DISM则从Windows更新或本地镜像恢复系统映像,SFC在DISM之后运行会更可靠。我一般按脚本里的顺序来:先DISM后SFC;实际脚本写法上也可以调换,关键是两步都要跑。
第四部分处理Windows Defender。Set-MpPreference可以重置两个常见被病毒篡改的策略:实时保护和排除路径。如果病毒在注册表里给Defender加了排除项,排除路径的清除能确保Defender再次全盘扫描时不会“忽略”那些病毒藏身处。
第五部分列出系统监听端口。同步列出当前监听状态下的端口,用来确认是否有程序在后台监听不常见端口。:3389这种远程桌面端口如果没开远程桌面却出现了,说明可能有远程控制功能在运行,需要继续追查。
这个脚本需要在管理员权限的PowerShell里运行。最稳妥的做法是:右键PowerShell图标,选择“以管理员身份运行”,然后执行:
Set-ExecutionPolicy RemoteSigned -Scope Process .\RepairAfterSynares.ps1脚本运行时间取决于SFC和DISM的执行时间,笔记本上一般20到40分钟,期间不要关机,不要合盖。
5. 清完不等于结束:清理后的系统加固与体检方法
5.1 系统性复查:全盘扫描、启动项复查、网络连接复查
清除和修复做完后,至少还要做一次“系统性体检”,我习惯按下面的顺序来:
全盘扫描用Windows Defender已经足够,但前提是Defender实时保护被重置为开启状态。扫描模式选择“完全扫描”,这个一般需要1到2小时。
再看一遍启动项。用Autoruns(Sysinternals套件)打开,筛选“签署者”为空的可疑项,特别留意已经打勾却指向tmp或AppData路径的条目。
网络连接这块,在命令提示符里执行:
netstat -ano | findstr ESTABLISHED把带外连接的PID记下来,用tasklist /FI "PID eq 进程号"反向找对应程序。Synares清理后如果还有不明外连,说明有其他样本还驻留在系统里。
5.2 浏览器主页、代理设置和快捷方式劫持的检查
有些Synares变体在感染用户机器时,还会顺手劫持浏览器设置,改默认主页、搜索引擎,或者往桌面快捷方式后面追加参数。只清理主体文件后,浏览器还可能残留异常设置。
检查点包括:
- Edge/Chrome的“启动时”选项是否被改成特定网址。
- 浏览器快捷方式“目标”一栏末尾是否有
http://...或"引号异常。 - 系统代理设置:
设置 > 网络和Internet > 代理,看是否开了“使用代理服务器”,如果是,先关掉。
处理方法不复杂,把浏览器设置恢复默认或手动改回就好。如果再次被改回,说明还有守护进程没清理干净,需要回到安全模式重做第三步。
5.3 重要数据备份与恢复
清毒和修复之后,最好借机做一次备份:
- 个人文档、照片、桌面文件,备份到移动硬盘或网盘。
- 浏览器书签导出成HTML文件。
- 微信/QQ聊天记录备份到电脑本地并复制出来。
有些病毒在清理后可能会留下部分被加密或损坏的文档,提前备份可以避免事后后悔。至于备份时要不要重装系统,我的建议是:如果病毒变体老、检测率高、清理顺利,不重装也没问题;如果发现多次反复、杀毒软件持续报新文件,与其无休止地清毒,不如直接重装系统,重装后务必打满补丁再恢复数据。
5.4 加固习惯:从“怎么杀”到“怎么防”
最后这一点虽然老生常谈,但如果不改掉最初的感染途径,下次还会中招。Synares常见的入侵途径包括:
- 破解软件或注册机捆绑。
- 非官方渠道下载的办公软件、游戏Mod。
- 钓鱼邮件附件中的Office宏。
- U盘摆渡。
针对性地做几件事:软件只从官网下载,安装时用自定义安装并观察是否有额外组件;Office宏默认禁用,收到邮件里的docm、xlsm先冷静检查来源;U盘插入前先扫描。电脑上常备一个绿色版Process Explorer或Autoruns,比什么都管用。
6. 实操回顾:这次清理中我踩过的坑和最终总结
6.1 第一次误删正版Synaptics驱动的教训
刚开始清理时,我差点把正版驱动当成病毒处理。当时这台笔记本确实装了Synaptics触控板驱动,系统服务列表里有SynTP服务,System32里也有SynTP.sys。如果一刀切把所有“Synaptics”相关的内容全删,触控板就会失灵,用户得重新装驱动。
后来我总结出三条区分经验,供参考:
- 正版驱动文件的路径基本固定:
C:\Program Files\Synaptics、C:\Windows\System32\SynTP等。 - 正版驱动文件名是SynTPEnh.exe、SynTPHelper.exe,很少单独以Synaptics.exe出现。
- 正版驱动的数字签名完整,文件属性里有公司名和产品名,而恶意副本要么无签名,要么签名无效。
6.2 计划任务清理时的粗心操作
第二次踩坑出在计划任务上。我用schtasks /delete /tn删除时,直接复制了图形界面显示的任务名称,结果任务名带了反斜杠(比如\SynapticsTask),命令报错“找不到指定的文件”。正确的做法是去掉开头的反斜杠,或者用PowerShell里的Unregister-ScheduledTask按对象的TaskName字段传,不用手动加反斜杠。
另外,有些计划任务的“状态”是禁用,但触发器仍然存在,病毒会在特定条件下启用它。所以只把状态改成禁用是没用的,必须删除整个任务。
6.3 杀毒软件全盘扫描后仍报毒的情况
脚本跑完之后,用户习惯性又做了一次全盘扫描,这次Defender报了同一个路径下的另一个文件。打开目录一看,是Temp目录里一份名为Synaptics.exe.old的文件,保存了旧版本。这不是“复发”,只是之前没有清理到备份文件。
处理方式很简单:把Temp目录里所有带Synaptics/Synares字样的文件全部删除,再重扫一遍就没有问题了。
如果遇到真正反复报毒的情况,建议在安全模式下再跑一次第三步,并特别检查C:\Program Files\Common Files下是否有多余文件。很多木马喜欢把动态库放进Common Files,主程序被删后它还能把主程序拉回来。
6.4 最后想说的
Synares病毒算不上高级威胁,但它把“伪装成驱动 + 多处驻留 + 计划任务复活”这套组合拳打得非常熟练,单靠杀毒软件一键查杀很难做到彻底干净。手动清理的核心并不在于会几条删除命令,而在于理解它“文件放哪里、从哪里启动、怎么复活”,想明白这三件事,清毒顺序就自然出来了。
如果在清理过程中,你发现自己机器里的文件路径、注册表键名和我说的不完全一样,不用慌。用第3步的清点命令把所有可疑项找出来,按“进程—文件—启动项—计划任务”的链条逐条处理,绝大多数变体都能搞定。清完之后再跑一遍第4节的修复脚本,系统资源恢复到正常状态,后续正常使用就不会再有那台“越用越卡”的电脑了。