Windows Security Center注册分析
文章目录
- Windows Security Center注册分析
- 1. wsc获取
- 2. wsc注册
Windows Security Center注册分析
最近在研究如何向WSC(Windows Security Center)中注册相关组件,类似火绒等相关软件,用来替换默认的Windows Defender,如下:
查了许多资料之后,发现应该是需要加入MVI – MICROSOFT VIRUS INITIATIVE;这样的话似乎过于麻烦了,那么有没有其他方式呢?本文就来探讨一下。
1. wsc获取
对于SecurityCenter信息的获取,我们可以通过WMI接口来进行获取如下:
get-wmiObject -namespace root\SecurityCenter2 -class AntiVirusProduct__GENUS : 2
__CLASS : AntiVirusProduct
__SUPERCLASS :
__DYNASTY : AntiVirusProduct
__RELPATH : AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER : DESKTOP-1SIKOAK
__NAMESPACE : ROOT\SecurityCenter2
__PATH : \\DESKTOP-1SIKOAK\ROOT\SecurityCenter2:AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
displayName : Windows Defender
instanceGuid : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe : windowsdefender://
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState : 393472
timestamp : Sat, 21 May 2022 05:34:12 GMT
PSComputerName : DESKTOP-1SIKOAK__GENUS : 2
__CLASS : AntiVirusProduct
__SUPERCLASS :
__DYNASTY : AntiVirusProduct
__RELPATH : AntiVirusProduct.instanceGuid="{4C17E7AE-043A-D732-91B8-D139C9EB6B26}"
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER : DESKTOP-1SIKOAK
__NAMESPACE : ROOT\SecurityCenter2
__PATH : \\DESKTOP-1SIKOAK\ROOT\SecurityCenter2:AntiVirusProduct.instanceGuid="{4C17E7AE-043A-D732-91B8-D139C9EB6B26}"
displayName : 火绒安全软件
instanceGuid : {4C17E7AE-043A-D732-91B8-D139C9EB6B26}
pathToSignedProductExe : C:\Program Files\Huorong\Sysdiag\bin\wsctrlsvc.exe
pathToSignedReportingExe : C:\Program Files\Huorong\Sysdiag\bin\wsctrlsvc.exe
productState : 266240
timestamp : Sat, 21 May 2022 05:34:04 GMT
PSComputerName : DESKTOP-1SIKOAK
因此对于WMI,我们也可以使用C++语言来开发获取,如下:
HRESULT
GetSecurityProducts(_In_ WSC_SECURITY_PROVIDER provider)
{HRESULT hr = S_OK;IWscProduct* PtrProduct = nullptr;IWSCProductList* PtrProductList = nullptr;BSTR PtrVal = nullptr;LONG ProductCount = 0;WSC_SECURITY_PRODUCT_STATE ProductState;WSC_SECURITY_SIGNATURE_STATUS ProductStatus;if (provider != WSC_SECURITY_PROVIDER_FIREWALL && provider != WSC_SECURITY_PROVIDER_ANTIVIRUS && provider != WSC_SECURITY_PROVIDER_ANTISPYWARE){hr = E_INVALIDARG;goto exit;}hr = CoCreateInstance(__uuidof(WSCProductList), NULL, CLSCTX_INPROC_SERVER, __uuidof(IWSCProductList), reinterpret_cast<LPVOID*> (&PtrProductList));if(FAILED(hr)){wprintf(L"CoCreateInstance returned error = 0x%d \n", hr);goto exit;}hr = PtrProductList->Initialize(provider);if(FAILED(hr)){wprintf(L"Initialize failed with error: 0x%d\n", hr);goto exit;}hr = PtrProductList->get_Count(&ProductCount);if (FAILED(hr)){wprintf(L"get_Count failed with error: 0x%d\n", hr);goto exit;}if (provider == WSC_SECURITY_PROVIDER_FIREWALL){wprintf(L"\n\nFirewall Products:\n");}else if (provider == WSC_SECURITY_PROVIDER_ANTIVIRUS){wprintf(L"\n\nAntivirus Products:\n");}else{wprintf(L"\n\nAntispyware Products:\n");}for (LONG i = 0; i < ProductCount; i++){hr = PtrProductList->get_Item(i, &PtrProduct);if(FAILED(hr)){wprintf(L"get_Item failed with error: 0x%d\n", hr);goto exit;}hr = PtrProduct->get_ProductName(&PtrVal);if (FAILED(hr)){wprintf(L"get_ProductName failed with error: 0x%d\n", hr);goto exit;}wprintf(L"\nProduct name: %s\n", PtrVal);SysFreeString(PtrVal);PtrVal = nullptr;hr = PtrProduct->get_ProductState(&ProductState);if (FAILED(hr)){wprintf(L"get_ProductState failed with error: 0x%d\n", hr);goto exit;}LPWSTR pszState;if (ProductState == WSC_SECURITY_PRODUCT_STATE_ON){pszState = L"On";}else if (ProductState == WSC_SECURITY_PRODUCT_STATE_OFF){pszState = L"Off";}else if (ProductState == WSC_SECURITY_PRODUCT_STATE_SNOOZED){pszState = L"Snoozed";}else{pszState = L"Expired";}wprintf(L"Product state: %s\n", pszState);if (provider != WSC_SECURITY_PROVIDER_FIREWALL){hr = PtrProduct->get_SignatureStatus(&ProductStatus);if (FAILED(hr)){wprintf(L"get_SignatureStatus failed with error: 0x%d\n", hr);goto exit;}LPWSTR pszStatus = (ProductStatus == WSC_SECURITY_PRODUCT_UP_TO_DATE) ? L"Up-to-date" : L"Out-of-date";wprintf(L"Product status: %s\n", pszStatus);}hr = PtrProduct->get_RemediationPath(&PtrVal);if (FAILED(hr)){wprintf(L"get_RemediationPath failed with error: 0x%d\n", hr);goto exit;}wprintf(L"Product remediation path: %s\n", PtrVal);SysFreeString(PtrVal);PtrVal = nullptr;if (provider == WSC_SECURITY_PROVIDER_ANTIVIRUS){hr = PtrProduct->get_ProductStateTimestamp(&PtrVal);if (FAILED(hr)){wprintf(L"get_ProductStateTimestamp failed with error: 0x%d\n", hr);goto exit;}wprintf(L"Product state timestamp: %s\n", PtrVal);SysFreeString(PtrVal);PtrVal = nullptr;}PtrProduct->Release();PtrProduct = nullptr;}exit:if (nullptr != PtrVal){SysFreeString(PtrVal);}if (nullptr != PtrProductList){PtrProductList->Release();}if (nullptr != PtrProduct){PtrProduct->Release();}return hr;
}
我们就可以枚举到相关信息,如下:
Antivirus Products:Product name: Microsoft Defender ???
Product state: On
Product status: Up-to-date
Product remediation path: windowsdefender://
Product state timestamp: Sat, 21 May 2022 03:44:27 GMT
2. wsc注册
上述WMI相关数据库,只能对WSC进行查询,那么注册的话还是行不通的,那么我们可以参考一下火绒的注册方案:
参考相关实现之后,注册结果如下(这里把名字取做我的安全):
Windows Security Center注册分析相关推荐
- Windows Admin Center 高可用部署
本文老王将为大家实作Windows Admin Center的高可用部署,相信有了高可用的架构支持将更进一步推进该产品的落地 环境介绍 08dc2 lan 10.0.0.2 255.0.0.0 16s ...
- 5. 使用Visual Studio App Center进行分析
Visual Studio App Center(https://appcenter.ms)是微软开发Windwos和移动应用程序.向beta测试人员分发应用程序.测试应用程序.扩展带有推送通知的应用 ...
- Windows 取证之注册表
原创稿件征集 邮箱:edu@antvsion.com QQ:3200599554 黑客与极客相关,互联网安全领域里 的热点话题 漏洞.技术相关的调查或分析 稿件通过并发布还能收获 200-800元不等 ...
- Linux Security Module逆向分析实战
Linux Security Module逆向分析实战 本文记录了对某发行版Linux中一个安全模块(LSM)的逆向过程,该LSM对系统中待运行的程序进行安全校验,数据流穿越内核态与用户态,涉及系统内 ...
- docker 查看虚拟网卡_最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center
最近想组一个 itx 小机箱作为家庭服务器,上面跑软路由,NAS,和一个 Linux 的开发测试环境,一机多用的同时,想要服务器尽可能的稳定.至于软硬件的选择就是另一个故事了,这里我们来谈谈虚拟化. ...
- 在Windows Media Center中收听超过100,000个广播电台
A cool feature in Windows 7 Media Center is the ability to listen to local FM radio. But what if you ...
- Windows 2003安全事件ID分析(1)
Windows 2003安全事件ID分析(1) 利用Windows Server 2003的安全事件ID可以帮助我们快速识别由Windows Server 2003 操作系统生成的安全事件,究竟意味着 ...
- Windows变慢原因分析及解决方法·系统篇
Windows变慢原因分析及解决方法·系统篇 系统加速 一 [Windows 98 ] 1.不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序.选择"开始→程序→附件→系统工 ...
- Windows 变慢原因分析及解决方法
Windows变慢原因分析及解决方法 谁都希望计算机一开机就可以立即进入Windows系统而不用等待,或者是系统在使用的时候不会越来越慢,但由于种种原因常常使这些愿望不能实现,甚至一开机就死机或者用着 ...
- 【Microsoft Azure 的1024种玩法】二十六. 在Azure VM中手动部署Windows Admin Center管理平台
[简介] Windows Admin Center是微软开发的一套可以部署在本地基于浏览器的GUI的工具集平台,其平台可用于管理Windows相关服务器和PC机器,我们可以利用Windows Admi ...
最新文章
- python哪一版好用-Python 可视化工具库哪款最好用?哪款最不好用?
- 身份证校验原理和PHP实现
- Centos 手工创建新用户
- php开源Plogger用法
- Bootstrap 滚动监听(Scrollspy)插件
- 【资源下载】PCtoLCD2002 下载 资源分享 OLED取模软件
- UE4学习-初识虚幻引擎(下载、安装、重定向问题、安装引擎、启动)
- colmak键盘_人小鬼大,ikbc 新款 Poker 2 机械键盘体验分享
- 012Java虚拟机005垃圾的回收
- 阿里云 python_阿里云python sdk
- 安卓手机作为文件共享服务器,安卓手机的文件共享应该怎么操作?
- ubuntu20.4上不网、进不了root和编译内核出现:cc1: error: code model kernel does not support PIC mode
- automatic preferred max layout width
- 什么互动管理必将风行于天下?(转)
- MFC 中 如何屏蔽Esc和Ente
- 【实用软件】二维码批量解析软件v1.0
- 深度学习,如何选择GPU服务器?
- 【Transformers】第 5 章:微调文本分类的语言模型
- pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 金蝶云星空通过python实现物料编码审核后自动分配组织