在Linux上,通常我使用ptrace
函数来跟踪所有系统调用,如果它尝试对我的机器做任何有害的事情,例如system("shutdown -s -t 00")
左右,则终止该进程。
我有办法在Windows上执行此操作吗?
编辑:我想编写Sandbox程序来限制其子机的时间和内存使用情况,它可以在Windows和Linux上运行,现在它只能通过ptrace
答案 0 :(得分:4)
如果将进程附加到Job object,则可以限制进程的CPU时间和内存。这不会阻止您执行恶意操作,但它可以让您实现您的要求。
答案 1 :(得分:1)
要在沙盒中运行应用程序,您可以使用CreateRestrictedToken创建一个新的受限制访问令牌(here有关您可以启用/禁用的权限的一些信息),请致电ImpersonateLoggedOnUser使用新令牌,使用CreateProcess启动新进程,并使用RevertToSelf恢复为旧令牌。我不确定在所有情况下你是否可以直接使用CreateProcessAsUser,试一试。
答案 2 :(得分:0)
可能为时已晚,刚发现你的帖子正在寻找相同的功能。
我发现CPU限制为1.1
您可以在此处下载源代码http://www.killprog.com/etce.html
我非常成功地使用它,希望它可以帮助你