不可动摇的过程

不可动摇的过程,第1张

概述不可动摇过程

我正在写一个程序,其中包括一个windows服务和一个GUI程序,因为windows服务不能直接与windows通信。

这是一个程序,它交互一个服务器守护进程阻止学生login在一个帐户在多个工作站。 (防止密码分享)

GUI过程使用windows自动启动并使用用户权限运行。 因此,用户可以很容易地杀死GUI进程。 这是不好的,因为GUI进程导致注销(和用户消息)。

我怎样才能阻止用户杀死进程?

检测windows服务失败

开始调用uac服务

windows服务打印pdf文件

如何在windows下的Java服务中添加时间戳GC日志文件名?

windows 10的uwp粘滞后台服务?

启动windows服务时未findapp.config

Python的windows服务 – 没有响应从内置的exe的启动/停止(但在Python中)

windows 7 *** 作系统中的服务不使用主机文件作为本地服务

为什么这个Python服务本身停止,尽pipe是无限循环?

我怎样才能得到一个服务来请求重启?

由于您没有选择使用 *** 作系统安全来防止这种情况,所以技术上的答案是无法完成。 这只剩下解决方法或替代方法。

一种没有官方支持的解决方法依赖于无证的功能 ,而你从我这里没有听到的是这样的:

public static class Unkillable { [Dllimport("ntdll.dll",SetLastError = true)] private static extern voID RtlSetProcessIsCritical(UInt32 v1,UInt32 v2,UInt32 v3); public static voID MakeProcessUnkillable() { Process.EnterDeBUGMode(); RtlSetProcessIsCritical(1,0); } public static voID MakeProcessKillable() { RtlSetProcessIsCritical(0,0); } }

你调用Unkillable.MakeProcessUnkillable ,杀死进程将导致一个直接的BSOD。 这是一个非常难看的解决方案,但很难辩驳“可以在2分钟内实施”。

另一个解决方法是创建一组进程,通过在每次死亡时重新启动来协作。

GUI过程使用windows自动启动并使用用户权限运行。 因此,用户可以很容易地杀死GUI进程。

怎么样:你运行GUI进程向他们显示消息,但是你使用服务来实际注销 。 然后,他们可以杀死他们想要的GUI进程,而不会影响软件的主要功能。

也许你应该更好地配置你的网络。 如果您的域名设置正确,则可以设置一个登录脚本 ,与域控制器进行核对,以确定用户是否已经登录,如果登录到其他位置,则将其记录下来。

我假设每台电脑都设置了相应的帐户设置(即不作为管理员)。

登录脚本也可以做其他的东西,如设置网络共享。

您可以查看隐藏进程的rootkit样式的方法,从任务管理器。 这不是一个特别优雅的解决方案。

你可以使用这个代码来使一个进程很难被kill(简单的C,抱歉,但是它不应该太难于移植到C#)。

从技术上讲,这不会阻止用户杀死进程,因为他们可以更改权限,但是他们需要编写代码或使用专门设计的工具来执行此 *** 作。 任务管理器和pskill都不会工作,除非用户具有管理员权限。

通过让服务使用备份/恢复权限来取得进程的所有权,可能会阻止非管理员用户更改权限。

最后,我终于使用另一个RunAs程序CPAU ,以管理员身份登录时启动进程。 这样做,学生可以使用Taskmanager或类似的东西不会轻易杀死它。

以后我也可以实现Jon提出的方法。 这样,即使学生设法杀死了这个过程,他们也不会成功。

你不应该禁止用户杀死你的应用程序。 如果服务在GUI shoutdown之后失败,那么你应该修复服务而不是GUI。

但如果你真的想停止应用程序仔细看这里

总结

以上是内存溢出为你收集整理的不可动摇的过程全部内容,希望文章能够帮你解决不可动摇的过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1291012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存