是否可以在 C# 中使用 access/edit 内核内存?

Is it possible to access/edit kernel memory in C#?

我想知道是否可以通过 C# 访问内核的内存并对其进行编辑。 如果不是,是否可以访问整个 RAM?在未定义特定进程的情况下在 RAM 上使用 ReadProcessMemory?

我正在尝试在 kernel/RAM 中搜索一个字符串,但它必须 select 一个特定的进程,并且该进程无法被 Win32 应用程序打开。

我做了一些研究并找到了在 C# 中包含 ntdll.dll 和使用 NtWriteVirtualMemory 等的方法,但是有没有更好的方法来做到这一点(如果可行)?除了创建驱动程序...?

提前感谢任何愿意提供帮助的人。

不,无论使用何种语言,您都无法从用户空间访问内核内存(除非存在任何漏洞)。否则这将是一个巨大的安全问题。

您必须使用 Windows Driver Kit 创建合适的驱动程序。然后你就可以完全访问整个内存了。