带你掌握不一样的监控进程技术

公众号:小道安全 等级 948 0 0
标签: wmihttpsC/C++

文章目录

1.技术应用背景

目前已知在杀毒厂商以及游戏厂商的安全对抗过程中,常常需要准确的监控收集并进行检测用户创建打开的EXE应用程序是否是安全的。同时也可以将此技术应用于其他应用的安全对抗方案中。那么如何去准确的监控和收集用户每次点击打开的EXE应用程序信息呢?接下来我就进行还原实现下如何准确的监控并收集用户每次点击打开EXE应用程序技术。

2.效果展示

下图展示的是开启监控程序,这是进行监控电脑上包括系统自启动EXE程序以及用户主动点击启动应用程序的信息。
带你掌握不一样的监控进程技术

3.功能代码实现

实现监控用户所有创建打开EXE程序的数据需要以下几个步骤:

1.通过调用CoInitializeEx函数,进行对COM初始化。

2.通过调用 CoCreateInstance函数, 获得WMI的定位器。

3.通过调用IWbemLocator::ConnectServer函数,并指定函数的参数 strNetworkResource 的值为 “root\cimv2”, 从而实现连接到 "IWbemServices"服务器。

  1. 通过调用CoSetProxyBlanket函数,进行设置 IWbemServices的代理,目的是为了WMI 服务能够模拟客户端角色。

5.通过调用 ExecNotificationQuery函数, 来进行查询接收事件。

下图这部分代码主要的目的是为了初始化COM和WMI的设置。

带你掌握不一样的监控进程技术

下面代码主要实现查询接收事件,也就是通过ExecNotificationQuery查询来循环获取用户所创建打开的所有EXE的数据。

带你掌握不一样的监控进程技术

4.知识背景清单

概述:WMI技术算得上是一个很古老的技术,它是由微软提供的,同时也是一种非常可靠的解决方案。WMI它还有一个非常大的优势,可以进行访问远程电脑。它是Windows操作系统中管理数据和操作的基础模块,它提供了一个通过操作系统、网络和企业环境去管理本地或远程计算机的统一接口集。

WMI技术可以应用于:

1.查询获取正在运行进程信息;

2.查询获取正在运行线程信息;

3.查询获取桌面信息;

4.查询获取环境变量信息;

5.查询获取驱动信息;

6.查询获取文件夹信息;

7.查询获取系统信息和系统服务;

8.查询获取硬件信息;

9.查询获取磁盘相关信息。

5.WMI相关概念

1.WBEM它的全称:Web Based Enterprise Management(基于web的企业管理),它是一种行业规范,建立在企业网络中访问和共享管理信息的标准。

2.WMI它的全称:Windows Management Instrumentation(Windows管理工具),它是WBEM的Windows实现,也就是它要遵守WBEM规则。通过WMI,我们可以获取关于硬件和软件的相关数据,也可以提供关于硬件或软件服务的数据给WMI。

3.COM 它的全称:Component Object Model(组件对象模型),它是由微软推出的一套接口规范,通过设定不同组件之间需要遵守的标准与协议,主要用来跨语言、跨进程之间的模块通信。

6.WMI相关函数

1.CoInitializeEx函数详解

带你掌握不一样的监控进程技术

  1. CoCreateInstance函数详解

带你掌握不一样的监控进程技术

  1. ConnectServer函数详解

带你掌握不一样的监控进程技术

  1. CoSetProxyBlanket函数详解

带你掌握不一样的监控进程技术

5.ExecNotificationQuery函数详解

带你掌握不一样的监控进程技术

7.WMI架构解析

下图的WMI架构图来源于MSDN,我们可以从架构图中很清晰的看到WMI主要分为3的层结构。

带你掌握不一样的监控进程技术

1.WMI providersand Managed object(WMI提供者和管理对象)

WMI提供者是一个监控一个或者多个的托管对象的COM接口。

托管对象是指逻辑或者物理组件,例如硬盘驱动器、网络适配器、数据库系统、操作系统、进程或者服务。

WMI提供者通过托管对象提供的数据向WMI服务提供数据,同时将WMI服务的请求传递给托管对象。

WMI提供者是由实现逻辑的DLL和承载着描述数据和操作的类的托管对象格式MOF(Managed Object Format)文件组成。其中这个两个文件都保存在\Windows\System32\wbem目录下。

带你掌握不一样的监控进程技术

2.WMI Infrastructure(WMI基础结构)

WMI的基础结构是Windows系统的系统组件。它主要包含两个模块:包含WMI Core(WMI核心)的WMI Service(WMI服务)和WMI Repository(WMI存储库)。

WMI存储库是通过WMI Namespace(WMI命名空间)组织起来的。在系统启动时,WMI服务会创建例如root\cimv2、root\default、root\subscription等等命名空间。

WMI服务扮演着WMi提供者、管理应用和WMI存储库之间的协调者角色。一般来说,它是通过一个共享的服务进程svchost来实施工作的。当第一个管理应用向WMI命名空间发起连接时,WMI服务将会启动。当管理应用不再调用WMI时,WMI服务将会关闭或者进入低内存状态。

3.WMI Consumers(WMI使用者)

它位于WMI构架的最顶层,它是WMI技术使用的载体。对于使用C++代码实现我们就可以直接通过COM技术直接与下层进行通信。对于.net平台语言,则要使用System.Management域相关功能与下层进行通信。WMI的使用者,可以进行查询、枚举数据,也可以运行Provider的方法,还可以向WMI订阅消息。其中这些数据操作都是要有相应的Provider来提供。

收藏
评论区

相关推荐

带你掌握不一样的监控进程技术
文章目录 1.技术应用背景(about:blank1_6) 2.效果展示(about:blank2_11) 3.功能代码实现(about:blank3_18) 4.知识背景清单(about:blank4_43) 5.WMI相关概念(about:blank5WMI_70) 6.WMI相关函数(abo
HTTPS
### 最近网站更新为https,于是做个笔记 ### 将域名 [www.domain.com](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.domain.com) 的证书文件1\_www.domain.com\_bundle.crt 、 ### 私钥文件2\_www.doma
HTTPS
楔子 谣言粉碎机前些日子发布的《[用公共WiFi上网会危害银行账户安全吗?](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.guokr.com%2Farticle%2F100110%2F)》,文中介绍了在使用HTTPS进行网络加密传输的一些情况,从回复来看,争议还是有的。随着网络越
HTTPS加密原理
http(超文本传输协议) ------------- > 一种属于应用层的协议 缺点: 1. 通信使用明文(不加密),内容可能会被窃听 2. 不验证通信方的身份,因此有可能遭遇伪装 3. 无法证明报文的完整性,所以有可能已遭篡改 优点: 1. 传输速度快 https ----- > HTTPS 并非是应用层的一种新协议。只是 HTTP
HTTPS和HTTP的区别
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。  它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的
HTTPS学习笔记
笔记详细地址:[http://note.youdao.com/yws/public/redirect/share?id=4882fca3838541908c75c92c92d28b74&type=false](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fnote.youdao.com%2F
HTTPS是如何保证安全的
HTTP存在的问题 --------- 1. **窃听风险**:通信使用明文(不加密),内容可能会被窃听(第三方可能获知通信内容) 2. **冒充风险**:不验证通信方的身份,因此有可能遭遇伪装 3. **篡改风险**:无法证明报文的完整性,所以有可能已遭篡改 HTTPS ----- ![](https://osci
HTTPS的工作原理
**目的** http就是我们平时浏览网页时候使用的一种协议(网站是以http://开头)。http协议传输的数据都是未加密的(明文),一次http协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,出现了https,下面讨论一下https的工作原理: **概述** HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一
HTTPS请求
##HTTPS请求## > **HttpsUtils代码** package com.ices.utils.httpsHelp; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader;
Nginx配置https
一、开启nginx的ssl模块 1.未安装过nginx,编译安装配置参数如下: ./configure \--prefix=/usr/local/nginx \--with-pcre \--with-http\_ssl\_module #ssl模块 \--with-http\_stub\_status\_module \--wit
Powershell 挖矿病毒处理与防范
![](https://oscimg.oschina.net/oscnet/726bd92a52d538da4db4149b4966551a7eb.jpg) 最近,一种利用Powershell的挖矿病毒在企业网络中频繁爆发,该病毒其利用了WMI+Powershell方式进行无文件攻击,并长驻内存进行挖矿。 Powershell的挖矿病毒具备无文件攻击的高
TCP、UDP、HTTP、HTTPS之前的区别
网络由下往上分为: 物理层--- 数据链路层--- 网络层 --  IP协议 传输层 --  TCP协议 会话层 -- 表示层和应用层 --  HTTP协议 ![](https://oscimg.oschina.net/oscnet/aeb8a94598094caf8c377e1277ba95948ea.png) 1、TCP/IP连接 TC
springboot2 配置 https
package cn.xiaojf.aibus.configure; import org.apache.catalina.Context; import org.apache.catalina.connector.Connector; import org.apache.coyote.http11.Http11Ni