记一次无法关闭的弹窗

记一次无法关闭的弹窗

·

1 min read

背景

最近突然想起来梳理了一遍机器上安装的应用,于是把一个叫【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 ManagerDisableWpbtExecution 为 1

方法二:其他方法

可以看这两个项目:

2. 关闭运行的服务

关闭/删除 服务:

stop-service -name GigabyteUpdateService remove-Service -Name GigabyteUpdateService

3. 删除残留的文件

根据 process monitor 的记录,找到对应的地址:

删除文件:

  • C:windowssystem32wpbbin.exe
  • C:windowssystem32GigabyteUpdateService.exe
  • C:windowssystem32GigabyteDownloadAssistant.exe

再重启验证下,果然没有再弹窗了,任务管理器看看进程,也都不在了。

解决!

相关链接: