首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册表监控,包括内核模式注册表访问?

注册表监控,包括内核模式注册表访问?
EN

Stack Overflow用户
提问于 2011-01-29 06:38:24
回答 2查看 5.1K关注 0票数 7

我记得在我大学最后一年的项目中,我写了一个C#注册表监视器,然而,当我将它与微软的ProcessMonitor应用程序(我记不清它的确切名称,但它是一家被MSoft收购的公司)进行比较时,我捕获的注册表调用并不多。

这是不是因为我使用了C#包装器,因此它只能捕获用户模式的注册表访问?

我使用了这个包装器:http://www.codeproject.com/KB/DLL/EasyHook64.aspx

为了捕获内核模式注册表访问,我必须用C++编写代码吗?

EN

回答 2

Stack Overflow用户

发布于 2011-01-29 12:43:22

Process Monitor正在使用内核驱动程序或ETW (见下文)来捕获注册表事件。我确实知道Process Monitor使用ETW处理它的一些数据(比如网络信息)。

像EasyHook这样的API挂钩或绕道机制通常在Win32 API级别运行(例如,ADVAPI32.dll中的RegSetValueRegCreateKeyEx )。因此,它有您提到的限制:只捕获用户模式的注册表访问。此外,API挂钩通常是在每个进程的基础上完成的,因此您必须将自己注入到要收集数据的每个进程中。如果您希望真正捕获整个系统中的所有访问,则还必须监视进程的创建。

Event Tracing for Windows (ETW)是(相对而言)捕获所有注册表访问的一种简单方法。ETW背后的基本思想是,操作系统、运行时、库,甚至日常应用程序开发人员都可以在其代码中添加特定的工具,以记录有关有趣事件和场景的数据。这种跟踪的开销很低,并且可以很容易地收集。ETW已经存在了一段时间了,但从Vista开始,它确实在整个内核中获得了吸引力。现在,几乎所有主要的内核子系统都配备了ETW。它现在也是Windows事件日志的基础。

ETW有其合理的负担,并且在某些领域缺乏实质性的文档,但如果您感兴趣,可以查看以下内容:

  • ETW MSDN documentation
  • ETW and Event Log
  • Xperf ( Windows Performance Toolkit的一部分),用于收集和分析traces
  • logman.exe,用于收集和分析traces
  • TraceEvent,的tracerpt.exe,一个用于收集和分析events
  • Using an NT Kernel Logger from native code

的.NET库

捕获内核模式注册表访问的

必须用C++编写吗?

不,使用上面提到的TraceEvent库,您可以使用C#来捕获和分析整个系统中的内核和用户模式注册表访问。

票数 11
EN

Stack Overflow用户

发布于 2011-02-12 05:06:04

要捕获内核模式注册表访问,您必须用C++编写驱动程序,没有其他方法可以做到这一点。进程监视器是一个驱动程序,这就是为什么它可以捕获用户和内核访问。

您可以在此处下载Regmon和Filemon的旧版本:

http://www.decuslib.com/decus/vmslt00a/nt/filemon.htm

http://www.decuslib.com/decus/vmslt00a/nt/regmon.htm

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4833736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档