首页
社区
课程
招聘
[原创] 对explorer.exe检测360安全卫士的分析
发表于: 2024-2-23 12:18 8582

[原创] 对explorer.exe检测360安全卫士的分析

2024-2-23 12:18
8582

微软最近的KB5034203补丁包中explorer.exe包含这样一段代码, 这两天传来传去, 各种说法都有, 我也很好奇, 但是一直没等到具体的技术细节分析, 自己分析一下.

alt text

explorer.exe启动时会加载twinui.pcshell.dll并执行其中的ShellFeedsAvailability::WriteFeedsAvailabilityToRegistry, 这个函数很重要, 如果它没有执行, 那么IsHijackingProcessRunning()那些代码都不会执行到:

alt text

alt text

此函数内部会调用ShellFeedsAvailability::CheckFeedsServerAvailability()从微软服务器下载json配置文件并决定相关功能开关.首先组装配置文件URL:

alt text

URL:

alt text

随后PingFeedsEnablementEndpoint()函数用这个URL请求json配置:

alt text

alt text

获取到的json内容:

alt text

alt text

再将获取到的json传递到IsFeedsEnabledAtEndPoint, 这个函数会解析json配置文件的一个重要字段reclaimEnabled, 如果为false, 那么后面检测360的那段逻辑也不会执行, 而如果是true, 则将注册表Campaign设置为"feeds-reclaim":

alt text

然后返回到最初的WriteFeedsAvailabilityToRegistry, 将注册表CampaignState写为2, 再给Shell_TrayWnd发一个自定义消息, WParam为12:

alt text

这个消息会在explorer.exe的Feeds::FeedsDynamicContent::ProcessMessage中处理, 主要是启动一个ID为6的timer, 默认300秒(或10秒后)运行, 运行一次后就killtimer:

alt text

alt text

Feeds::FeedsDynamicContent::OnTimer中判断TimerID为6且reclaim feature开启就会调用ShellFeedsCampaignHelper::RunFeedsCampaign::

alt text

RunFeedsCampaign会检查前面那两个注册表键值, 如果设置了并且值符合要求, 就会执行ShellFeedsCampaignHelper::CheckCampaignAvailability:

alt text

alt text

CheckCampaignAvailability函数里一系列环境判断, 但会优先查看feeds是否被隐藏, 如果没有被隐藏, 后续的检测, 包括对360进程的检测都不会执行:

alt text

同时这个函数里也有一些其他判断, 比如:

alt text

alt text


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2024-2-23 12:32 被lidowx编辑 ,原因: 补充
收藏
免费 5
支持
分享
最新回复 (6)
雪    币: 886
活跃值: (4929)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
2024-2-23 15:09
0
雪    币: 8677
活跃值: (3220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在人家地盘,人家想怎样就怎样!
2024-2-23 16:12
0
雪    币:
活跃值: (306)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

分析很赞!请问卡巴那个是在哪个文件呀

最后于 2024-3-8 19:45 被mb_rcbkhhlb编辑 ,原因:
2024-3-8 19:44
0
雪    币: 405
活跃值: (2855)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
卡巴虚拟机驱动,不过现在卡巴自己会把这项清零。
2024-3-12 18:12
0
雪    币: 1688
活跃值: (508)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
mb_rcbkhhlb 分析很赞!请问卡巴那个是在哪个文件呀
在ntos初始化的很早期.  ida names 窗口搜一下kaspersky关键字, 然后看下引用就能看到对应位置, 或者看kseregistershims函数的引用也可以.
2024-3-12 18:48
0
雪    币: 608
活跃值: (703)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
好奇一下,杀毒在移除文件的时候没有白名单么?难道检测到“恶意”以后直接就移除了啊?
2024-3-13 08:55
0
游客
登录 | 注册 方可回帖
返回