如何查看Windows内核驱动程序中特定进程的API调用?

问题描述 投票:0回答:1

如果我使用回调例程函数,我可以获得线程、进程、PEPROCESS等信息,我认为我可以使用它,但我不这么认为。另外,在内核的基础上监控特定进程的API调用不是很容易吗?

我尝试在内核中使用用户态头访问PEB结构,并在LDR字段中对Flink进行一些操作,但每次都会出现BSOD。

windows kernel hook windows-kernel
1个回答
0
投票

API调用监控(API hooking)与内核回调有很大不同。如果您只对 R3 API 调用感兴趣,您可以在程序中使用 ApiMonitor 等实用程序或 minhook/mhook/detours 等 R3 hooking 引擎。内核回调由 Windows 内核提供,用于通知内核驱动程序关键行为,特别是对于防病毒解决方案。请注意,PatchGuard 禁止内核挂钩。

对于第二个问题,您需要 __try/__ except 来捕获访问无效内存时可能出现的异常。在内核看来,任何用户内存指针都是不可信不安全,要么指针无效,要么不常驻(调出)。

© www.soinside.com 2019 - 2024. All rights reserved.