禁用任何退出软件的可能性
Disabling any possibility to exit a software?
我正在C++
中实现大学考试软件,我想防止任何人在它运行后关闭它。目的是防止用户复制软件、打印屏幕并保存它等目的!
我最初是想禁用ctrl-alt-del, alt+F4, alt+tab和其他键组合的方法,但显然遵循这种方法不是那么容易,特别是在windows xp之后的版本。
你认为有什么可行的方法可以解决我的问题?
当然,您应该采取所有正常的步骤,使您的应用程序拒绝自己关闭(也许除非提供密码),所以我们只讨论"我不希望允许任何人强行关闭它"的部分。
一个解决方案是让你的应用程序成为Windows shell。
另一个解决方案是设置计算机,使当前登录的用户没有关闭应用程序的权限。
最后的解决方案,这是一个肮脏的,没有官方支持的hack,你没有从我这里听到,是这样做的:
public static class Utility
{
[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);
public static void BsodIfProcessEnds()
{
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
}
public static void NoFireworksIfProcessEnds()
{
RtlSetProcessIsCritical(0, 0, 0);
}
}
警告:BsodIfProcessEnds
完全按照它在罐头上所说的做。
在机器上只给用户一个受限制的用户帐户,不要给他们终止应用程序的权限。
为你的其他限制做同样的事情,你甚至不需要写一个应用程序。
如果你想让用户以管理员的身份运行,你所要求的是不可能的。
您可以创建两个应用程序。一个是不断检查你的应用是否在运行如果它没有运行,那么启动它,这可能是一个服务(对于简单的用户来说很难发现)。
你也可以用NTFS权限做一些有趣的事情。例如,创建一个用户完全没有权限(甚至不能查看其内容)的上层目录,然后在该目录下创建一个用户具有读取权限的文件夹。除非用户知道一个好方法,否则他们很难找到你的应用。
但他仍然可以启动任务管理器,但可能有一个政策反对。说到这一点,你可以通过策略来限制他只允许运行你的应用程序,而不是任何其他应用程序(所以他不能复制它,或者使用PC做任何其他事情,而不是你的应用程序。
- 用于在并发环境中访问 MMIO 的软件模式
- 有没有办法实现 fmu 导出到基于 c++ 的仿真软件以使用 fmi?
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 有关图像处理应用程序的硬件和软件安全性的建议
- 如何降低生产者获得锁的可能性,而消费者在使用std::condition_variable时无法获得锁?
- 通过自制软件(macOS)安装的clang++:编译错误
- 如何在软件代码中使用ofstream创建文件
- 如何在Linux上正确发布C++软件(游戏)
- 尝试使用 RTool 在 R4.0 上安装软件包时出现编译错误
- Visual Studio Code输出被检测为恶意软件?
- 如何使用自制软件,cMake和cLion将库添加到C++项目中
- 我正在尝试编写将 ASCII 转换为十进制、添加并转换回 ASCII 的软件
- 在 C/C++ 中,是否可以通过使用指针更改"important"内存地址的值来创建简单的恶意软件?
- c++:在switch中使用std::pair的可能性
- 使用策略模式设计软件时出现的问题
- 为什么 Avira 认为"CoCreateInstance()"是恶意软件?
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 如何导入使用自制软件安装的 GMP?
- 在 Linux 上分发软件时的库依赖关系?
- 禁用任何退出软件的可能性