Windows进程间消息通信

Windows 7引入了UIPI(用户界面特权隔离)以增强系统安全,防止低权限进程向高权限进程发送消息。UIPI通过消息完整性检查(MIC)等级来限制进程间通信,阻止恶意程序提升权限。ChangeWindowMessageFilterEx函数允许程序在必要时调整消息过滤规则,允许特定消息的传递。这一机制在启用UAC的系统中尤为明显,但也带来了一些限制,如DLL注入和窗口句柄验证等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows改进的安全机制

windows 7增加了session隔离机制,Windows 实现了各Session之间的独立,使得操作系统的安全性,有了较大的提高。windows的服务进程都运行在system下在系统的Session 0里。

用户界面特权隔离

在早期的Windows操作系统中,同一用户下运行的所有进程,有着相同的安全等级,拥有相同的权限。例如,一个进程可以自由地发送一个窗口消息给其他进程的窗口。而从Windows Vista、7开始,某些关键的Windows消息就不能自由发送了。

Win7后进程拥有一个新的属性——特权等级(Privilege Level)。即便两个进程在相同的用户权限下运行,一个特权等级较低的进程向一个特权等级较高的进程发送消息会被过滤拦截掉。

UIPI的作用是防止恶意程序发送消息给那些拥有较高权限的窗口,从而获取较高的权限。在计算机系统中,这是一种维护系统安全的有效方式。因此,在 Windows 7 操作系统中运行的用户进程,在运行时具有不同的完整性(MIC)等级,那么相互间的通信无法像 Windows XP 那样正常进行。

UIPI的运行机制

UIPI:用户界面特权隔离(User Interface Privilege Isolation),是 Windows 7 通过 MIC 机制新引入的一种安全特性,用于拦截比自身进程 MIC 等级低的进程发来的消息。

        UIPI 的目的是为了规范跨进程间的窗口消息,默认情况下,高权限进程不会接收到低权限进程发送的窗口消息的,但是低权限进程能够接收到高权限进程的窗口消息。UIPI 的本质是系统检查目标窗口和发送方是否具有相同的 MIC 等级或者发送方具有更高的 MIC 等级,如果符合上述条件,则允许消息的传递,否则将消息丢弃。

        在 Windows 7 操作系统中运行的用户进程,如果运行时具有不同的完整性等级(特权),即具有不同的 MIC 等级,那么相互间的通信将会被隔离。

Windows 7: Message Integrity Check(消息完整性检查)
  MIC消息完整性检查(Message Integrity Check),是 Windows 7 增加的 Windows 安全对象访问控制安全机制,系统利用完整性级别标记一个安全对象,通过降低进程的完整性级别限制进程对安全对象的写入权限,类似于用户帐户组的成员被限制访问系统组件的方式。完整性检查机制降低进程修改系统或损害用户数据文件的可能性。

消息完整性检查分为 6 个等级:


MIC等级    说明
SECURITY_MANDATORY_UNTRUSTED_RID    不信任的MIC等级


SECURITY_MANDATORY_LOW_RID &nb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值