内核模式匹配,正则匹配笔记

85 篇文章 6 订阅
83 篇文章 10 订阅

做正则匹配的原因,做关键路径的监控 ,提高系统性能,一般吧正则数据放到dat里然后加密起来,然后客户端启动读出来,下发到驱动,保存到驱动链表里面


BOOLEAN IsPatternMatch(PUNICODE_STRING Expression, PUNICODE_STRING Name, BOOLEAN IgnoreCase)//Expression 正则式  Name路径 

{

	return FsRtlIsNameInExpression(

    		Expression,

    		Name,

    		IgnoreCase,//如果这里设置为TRUE,那么Expression必须是大写的

    		NULL

    		); 

}

//L"C:\\WINDOWS\\SYSTEM32\\*\\*.SYS"

//L"c:\\Windows\\system32\\122222\\2.sys"

放行条件

内核模式

ExGetPreviousMode=KernelMode

Irp->RequestorMode=KernelMode

本进程

在DeviceloctrlFilter中记录PsGetCurrentProcessId()拿到本进程PID

系统进程

DriverEntry里PsGetCurrentProcessId()拿到系统进程PID

KeGetCurrentIrql()>APC_LEVEl(应用层的都不会大于这个IRQL)

白名单库里的,要考虑调用链

如何放行

hook监控就调用原函数

IRP调用IoSkipCurrentIrpStackLocation(IpIrp)

IoCallDriver()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值