简体   繁体   English

如何创建将在Windows的内核级别运行的进程?

[英]how to create a process which will run in kernel level in windows?

I want to create a kernel level of process for windows (Ring 0) but i don't know where to start from. 我想kernel level of process for windows (Ring 0)创建一个kernel level of process for windows (Ring 0)但是我不知道从哪里开始。 I want to know which SDK is required and any tutorial showing its implementation would be helpful. 我想知道需要哪个SDK ,任何显示其实现的教程都将有所帮助。

The SDK is the Windows Driver Kit and documentation here . 该SDK是Windows驱动程序工具包此处的文档。 As a correction to your question, at kernel mode you can't use processes, since kernel-mode drivers run as part of the operating system's executive. 作为对问题的更正,在内核模式下不能使用进程,因为内核模式驱动程序作为操作系统执行程序的一部分运行。 You can create kernel threads though. 您可以创建内核线程。

You are asking this in conjunction with how to create a process which is not visible in task manager or services list 您在询问此问题以及如何创建在任务管理器或服务列表中不可见的流程

Creating a kernel mode solution is going to be so much overhead to do what you want that it is really not the solution. 创建内核模式解决方案将花费很多精力来做您想做的事情,但这实际上不是解决方案。 Creating a driver as a substitute for a typical user mode desktop application is not as straight-forward as it sounds. 创建驱动程序来代替典型的用户模式桌面应用程序并不像听起来那样简单。

You should either: 您应该:

  1. Use Windows security to restrict users 使用Windows安全性限制用户
  2. Write your app as a service (this is still even not a good solution imo because admins can stop it and it sees 'activity' at a different level than a desktop app) 将您的应用程序编写为服务(这仍然不是imo的好解决方案,因为管理员可以停止它,并且看到的“活动”与台式机应用程序不同)
  3. Do some basic trick to prevent closing, such as two sentinel processes that watch each other and keep each other alive. 做一些基本的技巧来防止关闭,例如两个互相监视并保持彼此活力的哨兵进程。

You can create system threads as pointed by Shinnok. 您可以按照Shinnok的指示创建系统线程。 Windows does not have facilities for what you are trying to do. Windows没有您要执行的操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 Windows ( C++ ) 中创建进程以运行另一段代码? - How to create process in Windows ( C++ ) to run another section of code? (WDK,C++,Windows)有没有办法在 kernel 驱动程序中运行进程? - (WDK, C++, Windows) Is there a way to run process in kernel driver? 如何在 Kernel 级别的 Windows(7) 中找到 SerialPort 物理地址 - How to find the SerialPort phisical address in Windows(7) on Kernel level 如何在Windows上以内核模式获取进程使用的CPU时钟周期? - How to get CPU clock cycles used by process in kernel mode on windows? 哪个进程拥有给定端口(Linux内核)? - Which process owns the given port (Linux kernel)? 如何在Windows上用C ++创建进程? - How to create a process in C++ on Windows? 如何使用fork()系统调用创建一级进程树? - How to create one level process tree using fork() system call? 如何创建具有较低完整性等级(IL)的新流程? - How to create a new process with a lower Integrity Level (IL)? 使用SYSTEM级别进程(Windows Service)中已登录的用户上下文模拟并运行任何方法: - Impersonate and run any method using a logged in user context from SYSTEM level process (Windows Service): 如何按进程访问内核操作 - How to access kernel operations by process
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM