C++ 在winapi中以尽可能低的权限运行进程

C++ 在winapi中以尽可能低的权限运行进程,c++,windows,winapi,process,privileges,C++,Windows,Winapi,Process,Privileges,我正在写一些类似的东西。目前我正在使用CreateProcess调用运行用户进程。如果进程的运行时间超过了指定的时间,我会终止进程,但我不知道如何拒绝已创建进程的读/写文件系统权限/创建进程权限等。给定的可执行文件可以是任何东西,我只需要允许stdin/stdout。如果我能设置工作记忆,那也太好了 我读了很多关于msdn的文章,比如,等等,但是我很快就被弄糊涂了(可能是因为我对win32的了解非常有限)。 仅仅调用CreateProcessAsUser并创建具有这些有限权限的特殊用户(以及如何

我正在写一些类似的东西。目前我正在使用CreateProcess调用运行用户进程。如果进程的运行时间超过了指定的时间,我会终止进程,但我不知道如何拒绝已创建进程的读/写文件系统权限/创建进程权限等。给定的可执行文件可以是任何东西,我只需要允许stdin/stdout。如果我能设置工作记忆,那也太好了

我读了很多关于msdn的文章,比如,等等,但是我很快就被弄糊涂了(可能是因为我对win32的了解非常有限)。 仅仅调用CreateProcessAsUser并创建具有这些有限权限的特殊用户(以及如何创建这样的用户)就足够了吗

我希望我可以在一个函数调用中使用正确的参数来实现这一点,所以请提供帮助

另外,如果你知道一些类似的开源项目,那就太好了

谢谢

==========================================================

编辑: 你好:)
我仍然坚持这一点。我没有足够的时间来做这件事,但我想SnemarkPost是非常有用的。如果有人有现成的解决方案,那就太好了。如果我对snemarch的链接做了些什么,我会发帖的

看看和-这让您可以(在某种程度上)微调流程的权限。您可以使用一些标准权限,如
safe\u LEVELID\u UNTRUSTED

考虑在内部运行用户进程。用户进程创建的子进程也将在同一作业对象中结束。您可以对作业可以使用多少资源、如何与GUI交互等应用特定的限制(请参见函数)。你可以一下子杀死一个作业对象内的所有进程。

我们有一段代码来完成这项工作,但我不能发布:(

基于此进程的访问令牌创建“受限”访问令牌。然后使用此访问令牌为应用程序创建新进程

对代码有评论-更多信息可以在MSDN的文章中找到,但是像往常一样,MS已经破坏了网络,文章不再存在

相关搜索发现“DropMyRights”应用程序链接到一个可能做你想做的事情的网站上,提供了源代码,但这些链接在博客页面中再次被破坏

您可能需要查看以下函数
OpenProcessToken
GetTokenInformation
CreateRestrictedToken


SE\u CHANGE\u NOTIFY\u NAME

vmware instumentation这样的私有产品是不可能的?或者其他一些vm产品?不,这不是不可能的,但如果可能的话,我希望坚持使用win api。我愿意接受所有建议。