利用PsSetLoadImageNotifyRoutine实现模块加载监控.pdfVIP

  • 2
  • 0
  • 约9.62千字
  • 约 8页
  • 2026-06-10 发布于北京
  • 举报

利用PsSetLoadImageNotifyRoutine实现模块加载监控.pdf

模块加载包括用户层模块(.DLL)和内核模块(.SYS)的加载。传统方法要监控这两者

加载必须HOOK好几个函数,比如NtCreateSection和NtLoadDriver等,而且这些方法

还不能未知的驱动加载方法。其实为了模块加载而HOOKAPI是非常愚蠢的,因

为微软已经了一对的API实现此功能。它们分别是

PsSetLoadImageNotifyRoutine和PsRemoveLoadImageNotifyRoutine,可以设置/取消

一个“映像加载例程”,当有驱动或者DLL被加载时,回调函数就会被调用。有人

可能认为这个方法的非常表面,其实恰恰相反,这个方法非常底层,大部分隐秘的

加载驱动的方法都可以绕过NtLoadDriver,但是无法绕过“映像加载例程”。所以

用此方法驱动加载是最合适的了。

首先看看此函数的原型:

//添加:

PsSetLoadImageNotifyRoutine((PLOAD_IMAGE_NOTIFY_ROUTINE)LoadImageNotifyRoutine);

//删除:

PsRemoveLoadImag

文档评论(0)

1亿VIP精品文档

相关文档