记一次无法关闭的弹窗

date
Apr 25, 2024
slug
the-tale-of-the-un-closable-popup-window
status
Published
tags
Debug
WinDbg
Tools
summary
通过一个卸载掉弹窗的应用,重启后还会出现的例子来说明如何找到问题应用的过程,以及发现 wpbbin.exe 和 WPBT 机制的过程
type
Post

背景

最近突然想起来梳理了一遍机器上安装的应用,于是把一个叫【Gigabyte Control Center】的应用给卸载了。卸载了之后也就没管了,反正也用不着。
就在今天,我重启了电脑后,右下角出来一个弹窗!如下图:
notion image
这不就是我卸载的那个应用吗?咋出现了呢?是没卸载干净吗?

分析

首先,让我们上工具,来看看这个弹窗是谁!

找凶手(上)

打开【Process Explorer】,将目标环拖到窗口上,便找到了这个应用!
notion image
没想到,不老实呀,居然还藏了一个服务。
简单,把服务关掉,服务移除,再删除 exe,手工。继续干活(此时的我还没意识到事情的严重性
一段时间之后,巧了,我又重启了机器。
于是!神奇的弹窗又出现了!!!
此时的我已经不淡定了,难道是我没删除成功?还是还有其他的应用在作祟!

找凶手(下)

既然是开机之后就会出现弹窗,也找到了弹窗进程就是GigabyteUpdateService服务启动的GigabyteDownloadAssistant.exe 那就好办了。
继续上工具,打开【process monitor】,勾选上 【选项】-【开启开机日志】
然后重启,就等凶手出现了。
重启后,再次打开【process monitor】便可保存日志,再次打开:
我们直接搜索 GigabyteUpdateService 即可,很快就锁定了目标:wpbbin.exe
notion image
这货是什么东西,看看它的详情:
notion image
具体信息也没有,看起来就像病毒。
再来看看,是谁启动的它。居然是 smss.exe 启动的它!
(这里没有图,日志被删了,恢复也没成功😂
smss.exe代表Session Manager Subsystem(会话管理子系统)。这是一个由Microsoft提供的关键系统进程,负责处理用户会话的创建、终止以及管理Windows系统的一些启动和关闭任务。当你启动计算机时,smss.exe是最先运行的进程之一,它负责初始化系统会话,设置系统变量,并且启动其他关键的系统进程
难道是它注入到 smss.exe 里面去了?
那我们来看看堆栈(忽略图中的内容,就是双击 smss 启动进程的那条记录,选择 堆栈即可):
notion image
看起来调用的模块也挺正常的,没有被注入的痕迹。

是系统行为?

如果没有注入,那就是 Windows 那些奇奇怪怪的行为了。
首先,怀疑是否存在特定的注册表,系统组件读取到 wpbbin.exe 时,会去启动它,就像 autochk.exe 那样。
于是,可以通过过滤器:
notion image
结果并没有查到信息,看来事情不简单了。
于是,在网上搜索了一下 wpbbin.exe 。(这里用百度会好一点)
notion image
于是,就能看到一个概念:WPBT。
WPBT(Windows Platform Binary Table) 由主板厂商将一个二进制文件编入BIOS。在每次启动的时候,BIOS将这个二进制文件载入内存,并填写Handoff memory项,告诉Windows内存在哪里,有多大。Windows的初始化进程Windows Session Manager (smss.exe)在启动的时候,会在寻找WPBT表的GUID,来定位这个表。如果定位成功,则把它拷入磁盘(如:\Windows\System32\Wpbbin.exe),并会在用户态运行它。 参考:https://download.microsoft.com/download/8/A/2/8A2FB72D-9B96-4E2D-A559-4A27CF905A80/windows-platform-binary-table.docx
果然是 Windows 的机制。

解决

找到问题就是解决问题的一半。接下来就简单了。

1. 关掉 WPBT 功能

方法一:修改注册表:

HKLM\SYSTEM\CurrentControlSet\Control\Session ManagerDisableWpbtExecution 为 1
notion image

方法二:其他方法

可以看这两个项目:

2. 关闭运行的服务

关闭/删除 服务:

3. 删除残留的文件

根据 process monitor 的记录,找到对应的地址:
notion image
notion image
删除文件:
  • C:\windows\system32\wpbbin.exe
  • C:\windows\system32\GigabyteUpdateService.exe
  • C:\windows\system32\GigabyteDownloadAssistant.exe
 
再重启验证下,果然没有再弹窗了,任务管理器看看进程,也都不在了。
解决!

相关链接:

 

© Frend Guo 2022 - 2024