某银狐伪装Steam客户端启动器”Steam.exe“或”Telegram简体中文语言包“隐蔽投毒"

admin 2026-10-23 07:33:17 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

某银狐伪装Steam客户端启动器”Steam.exe“或”Telegram简体中文语言包“隐蔽投毒

0x4010
0x4010

只会看监控的实习生

2026年8月9日%2017:38
广东

在小说阅读器读本章

去阅读

我一哥们刚换的新电脑准备爽玩3A大作,然而在安装steam的时候不知道从哪里下载到一个看似人畜无害的steam,运行之后没反应,这才发现不对劲给我拿过来看一下。
样本分析发现,是一份被极其隐蔽patch过的9.69.92.62版本steam启动器,其并未使用常见的方式在入口点或%20TLS%20回调处直接劫持控制流,而是将恶意代码插入到%20steam%20客户端自带的%20protobuf%20注册路径中。程序启动后,MSVC%20CRT会在 WinMain 前执行全局初始化函数表,通过 clientmetrics.proto 的%20file-registration%20初始化链触发恶意代码。之后动态解析API,下载bmp将文件写入内存,经自定义解密逻辑原地变换后,最终被作为 gdi32!EnumObjects 的回调函数执行,可以说手法非常的隐蔽。

vt和微步分析情况:

样本主要流程图如下:


一、样本分析

1.1%20样本基本信息
项目 内容
文件名 Steam.exe
文件大小 4.46%20MB
架构 32-bit%20PE
ImageBase 0x400000
OEP 0x58F9CD
TLS%20Callback 0x58F9E5
SHA1 98fe8fca4e9d670acffa041de3cc8c5ed8a04d82
MD5 D58F9D3409892188764DA6F311E915FD
SHA256 E0F6227F02D8BF6263938088AF91D3F073DB4A43A529BA46665CB2E90F612799

1.2%20启动阶段

样本入口点 0x58F9CD 是标准%20MSVC%20CRT%20启动桩,功能为初始化安全%20cookie%20后进入 __scrt_common_main_seh:

char *__usercall%20start@<eax>(char *a1@<esi>)
{
 %20__security_init_cookie();
return __scrt_common_main_seh(a1);
}

在 __scrt_common_main_seh 中,程序会在调用 WinMain 前执行全局初始化函数表:

__initterm 会从 First 到 Last 顺序遍历函数指针,遇到非空表项即执行。经枚举,0x728568-0x7289CC 范围内共有%20280%20个非空初始化表项,其中最早可达恶意插入点的是:

0x7285A0%20->%200x446B80

因此,恶意代码的首次触发发生在 WinMain 前的%20CRT%20全局初始化阶段。

1.3%20protobuf%20注册阶段

clientmetrics.proto 是%20Steam%20正常代码里的%20protobuf%20描述文件。程序启动时%20protobuf%20会把这些%20.proto%20描述注册到内部表里。

初始化表项 0x7285A0 指向函数 0x446B80。该函数是一个小型全局注册包装器,用于注册 clientmetrics.proto:

.text:00446B80%20 %20 %20 %20 %20 %20 %20 %20 %20push%20 %20 offset%20unk_812A50%20;%20_initterm%20表项%200x7285A0%20指向本函数;传入%20clientmetrics.proto%20 0x812A50。
.text:00446B85%20 %20 %20 %20 %20 %20 %20 %20 %20mov%20 %20 %20ecx,%20offset%20unk_826318
.text:00446B8A%20 %20 %20 %20 %20 %20 %20 %20 %20call%20 %20 sub_5C5D20
.text:00446B8F%20 %20 %20 %20 %20 %20 %20 %20 %20retn