1

在 Linux 上,通常我使用ptrace函数来跟踪所有系统调用,并在它试图对我的机器做任何有害的事情时终止该进程,例如system("shutdown -s -t 00")左右。

有没有办法让我在 Windows 上做到这一点?

编辑:我想编写沙盒程序来限制它的孩子可以在 Windows 和 Linux 上运行的时间和内存使用,现在它只能在 Linux 上运行通过ptrace

4

3 回答 3

4

如果将进程附加到Job 对象,则可以限制进程的 CPU 时间和内存。这不会让你阻止 if 执行恶意操作,但它会让你实现你所要求的。

于 2010-01-24T17:03:37.313 回答
1

要在沙箱中运行应用程序,您可以使用CreateRestrictedToken创建一个新的受限访问令牌(这里有一些关于您可以启用/禁用的权限的信息),使用新令牌调用ImpersonateLoggedOnUser,使用 CreateProcess 启动新进程并恢复到您的带有RevertToSelf的旧令牌。我不确定是否在所有情况下都可以直接使用CreateProcessAsUser,试一试。

于 2010-01-24T11:53:29.750 回答
0

可能为时已晚,刚刚看到你的帖子,我自己也在寻找相同的功能。

我发现 CPU 限制 1.1

你可以在这里下载它的源代码http://www.killprog.com/etce.html

我用的很成功,希望对你有帮助

于 2010-05-26T17:17:24.933 回答