Win64 驱动内核编程-13.回调监控模块加载

本文介绍了如何使用Windows驱动编程中的PsSetLoadImageNotifyRoutine和PsRemoveLoadImageNotifyRoutine API来监控模块(包括驱动和DLL)的加载。通过设置映像加载通告例程,可以在模块加载时触发回调函数。通过判断回调函数参数来区分驱动加载与DLL加载,若要阻止驱动加载,可通过获取驱动的DriverEntry地址并写入"拒绝访问"的机器码实现。
摘要由CSDN通过智能技术生成

回调监控模块加载

    模块加载包括用户层模块(.DLL)和内核模块(.SYS)的加载。传统方法要监控这两者加在必须 HOOK 好几个函数,比如 NtCreateSection 和 NtLoadDriver

等,而且这些方法还不能监控未知的驱动加载方法。其实为了监控模块加载而HOOK API 是非常傻的,因为微软已经提供了一对标准的 API 实现此功能。它们

分别是 PsSetLoadImageNotifyRoutine 和 PsRemoveLoadImageNotifyRoutine可以设置/取消一个“映像加载通告例程”,当有驱动或者 DLL 被加载时,回调函

数就会被调用。有人可能认为这个标准方法的监控非常表层,其实恰恰相反,这个方法非常底层,大部分隐秘的加载驱动的方法都可以绕过 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值