背景
最近突然想起来梳理了一遍机器上安装的应用,于是把一个叫【Gigabyte Control Center】的应用给卸载了。卸载了之后也就没管了,反正也用不着。
就在今天,我重启了电脑后,右下角出来一个弹窗!如下图:
这不就是我卸载的那个应用吗?咋出现了呢?是没卸载干净吗?
分析
首先,让我们上工具,来看看这个弹窗是谁!
找凶手(上)
打开【Process Explorer】,将目标环拖到窗口上,便找到了这个应用!
没想到,不老实呀,居然还藏了一个服务。
简单,把服务关掉,服务移除,再删除 exe,手工。继续干活(此时的我还没意识到事情的严重性
一段时间之后,巧了,我又重启了机器。
于是!神奇的弹窗又出现了!!!
此时的我已经不淡定了,难道是我没删除成功?还是还有其他的应用在作祟!
找凶手(下)
既然是开机之后就会出现弹窗,也找到了弹窗进程就是GigabyteUpdateService
服务启动的GigabyteDownloadAssistant.exe
那就好办了。
继续上工具,打开【process monitor】,勾选上 【选项】-【开启开机日志】
然后重启,就等凶手出现了。
重启后,再次打开【process monitor】便可保存日志,再次打开:
我们直接搜索 GigabyteUpdateService
即可,很快就锁定了目标:wpbbin.exe
这货是什么东西,看看它的详情:
具体信息也没有,看起来就像病毒。
再来看看,是谁启动的它。居然是 smss.exe
启动的它!
(这里没有图,日志被删了,恢复也没成功
smss.exe
代表Session Manager Subsystem(会话管理子系统)。这是一个由Microsoft提供的关键系统进程,负责处理用户会话的创建、终止以及管理Windows系统的一些启动和关闭任务。当你启动计算机时,smss.exe
是最先运行的进程之一,它负责初始化系统会话,设置系统变量,并且启动其他关键的系统进程
难道是它注入到 smss.exe
里面去了?
那我们来看看堆栈(忽略图中的内容,就是双击 smss 启动进程的那条记录,选择 堆栈即可):
看起来调用的模块也挺正常的,没有被注入的痕迹。
是系统行为?
如果没有注入,那就是 Windows 那些奇奇怪怪的行为了。
首先,怀疑是否存在特定的注册表,系统组件读取到 wpbbin.exe
时,会去启动它,就像 autochk.exe
那样。
于是,可以通过过滤器:
结果并没有查到信息,看来事情不简单了。
于是,在网上搜索了一下 wpbbin.exe
。(这里用百度会好一点)
于是,就能看到一个概念:WPBT。
WPBT(Windows Platform Binary Table) 由主板厂商将一个二进制文件编入BIOS。在每次启动的时候,BIOS将这个二进制文件载入内存,并填写Handoff memory项,告诉Windows内存在哪里,有多大。Windows的初始化进程Windows Session Manager (smss.exe)在启动的时候,会在寻找WPBT表的GUID,来定位这个表。如果定位成功,则把它拷入磁盘(如:WindowsSystem32Wpbbin.exe),并会在用户态运行它。 参考:https://download.microsoft.com/download/8/A/2/8A2FB72D-9B96-4E2D-A559-4A27CF905A80/windows-platform-binary-table.docx
果然是 Windows 的机制。
解决
找到问题就是解决问题的一半。接下来就简单了。
1. 关掉 WPBT 功能
方法一:修改注册表:
HKLMSYSTEMCurrentControlSetControlSession Manager
的 DisableWpbtExecution
为 1
方法二:其他方法
可以看这两个项目:
2. 关闭运行的服务
关闭/删除 服务:
stop-service -name GigabyteUpdateService remove-Service -Name GigabyteUpdateService
3. 删除残留的文件
根据 process monitor 的记录,找到对应的地址:
删除文件:
C:windowssystem32wpbbin.exe
C:windowssystem32GigabyteUpdateService.exe
C:windowssystem32GigabyteDownloadAssistant.exe
再重启验证下,果然没有再弹窗了,任务管理器看看进程,也都不在了。
解决!