如何在SYSTEM权限下运行应用程序?

4
不使用Windows服务?这可能吗?
2个回答

6
可以通过以下方式实现:
1)使用某些现有接口连接运行在SYSTEM账户下的Windows服务来启动新进程。例如,您可以使用任务计划程序API。
2)您可以安装新的Windows服务,通过服务启动进程,停止服务,卸载服务。这是使用PsExec实用工具从SysInternals的方法。
3)您可以启用调试特权并使用DLL注入将自定义DLL注入在运行在SYSTEM账户下的进程中,从DLL启动新进程,然后卸载注入的DLL。

PsExec可以创建一个Windows服务来实现这一点。最终,我也成功地通过中间和临时的Windows服务来完成了这个任务。当应用程序在系统下启动时,我会删除该服务。 - tactoth
@tactoth:是的,我知道这个。我认为最好看看所有工作方式,而不是写一个长描述。我发现通过安装临时服务的方式非常酷,也非常灵活。 - Oleg
关于“卸载注入的DLL”,这是必要的吗?因为目标进程会崩溃,对吗? - RepeatUntil
@RepeatUntil: 为什么目标进程应该崩溃?可能是某些特定的DLL出了问题,但这并不是常见情况。无论如何,我在许多年前编写的一些旧程序中使用了这种情况,并且在卸载先前注入的DLL时没有遇到任何问题。 - Oleg

-7

看到Windows内核是Windows的一部分...这意味着你不能在Windows上做任何事情而不使用Windows的一部分(至少需要内核)。

无论如何,您可以编写自己的系统代码..即操作系统,以尝试一些大型项目,这显然需要至少一年半的时间,如果您是非常优秀的程序员的话。 :D

如果您有兴趣花费那一年半的时间,请告诉我,我会加入进来的,我是认真的。


2
什么?这与问题无关。SYSTEM是本地计算机上使用的帐户,由操作系统内部用于运行系统进程和Windows服务。没有人会尝试在不使用Windows的一部分的情况下运行Windows,更不用说编写全新的操作系统了。 - Cody Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接