【问题标题】:subprocess always running with low integrity level?子进程总是以低完整性级别运行?
【发布时间】:2019-04-23 02:27:05
【问题描述】:

我正在为 C# 中的统一游戏开发补丁程序。因为游戏是用不支持system.diagnostics.Process的il2cpp构建的,所以我不得不通过windows api启动补丁程序。
我的问题是修补程序始终以低完整性级别运行,仅允许访问 appdata/locallow 目录。
我仔细检查了统一游戏的所有部分始终以中等级别运行,但子进程始终降级为低级。
我尝试了 CreateProcessA 和 ShellExecuteA API 调用,都使用了我能想到的有效参数的每个合理组合。结果保持不变。尽管父母显然具有中等诚信,但孩子的诚信水平总是较低。
我什至尝试了一些old code,它使用来自另一个进程的安全令牌来获得中等完整性。它成功启动了我的程序,但仍然只是完整性低。
如果我通过单击或从 vs 自身启动程序,我会获得中等完整性,但是当从 cmd 调用它时,当 cmd/PowerShell 在中等运行时,我会获得同样低的完整性。
使用 icacls 设置完整性级别也没有什么区别。

修补程序只是一个简单的 .net 4 Windows 窗体应用程序(以防止旧酒等问题),它适用于文件增量。

我显然在这里遗漏了一些东西。有人知道为什么吗?很难找到任何东西,因为所有结果要么谈论 uac 管理员提升,要么谈论如何降低一个人的完整性。

我试图了解总体上 msdn 的完整性和权限,但这是一个无底洞,坦率地说对我来说太复杂了。

我自己总是需要 uac 管理员提升,顺便说一句,效果很好。但这不是应该的工作方式。

仅仅运行一个继承父级完整性级别的程序真的那么难吗?从我目前发现的情况来看,这应该是默认行为。

【问题讨论】:

    标签: c# windows winforms permissions uac


    【解决方案1】:

    您是否将文件放入 LocalLow? Windows 以低完整性 IIRC 启动此文件夹内的应用程序。

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      相关资源
      最近更新 更多