子进程总是 运行 低完整性级别?
subprocess always running with low integrity level?
我正在为使用 C# 的统一游戏开发补丁程序。因为游戏是使用不支持 system.diagnostics.Process
的 il2cpp 构建的,所以我被迫通过 windows api.
启动补丁程序
我的问题是修补程序总是 运行 具有低完整性级别,只允许访问 appdata/locallow
目录。
我仔细检查了统一游戏的所有部分总是 运行 中等水平,但子进程总是降级到低水平。
我尝试了 CreateProcessA 和 ShellExecuteA API 调用,使用我能想到的有效参数的每一个合理组合。结果保持不变。尽管 parent 显然具有中等完整性,但 child 总是以较低的完整性级别结束。
我什至尝试了一些 old code 使用来自另一个进程的安全令牌来获得中等完整性。它成功地启动了我的程序,但同样是低完整性。
如果我通过单击或从 vs 本身启动程序,我会得到中等完整性,但是当从 cmd 调用它时,我得到同样低的完整性,而 cmd/PowerShell 在中 运行ning 上。
使用 icacls 设置完整性级别也没有什么不同。
修补程序只是一个简单的 .net 4 windows 表单应用程序(以防止旧 wine 等问题)与文件增量一起使用。
我显然在这里遗漏了一些东西。有人知道为什么吗?很难找到任何东西,因为所有结果要么谈论 uac 管理员提升,要么谈论如何降低一个人的完整性。
我尝试通读 msdn 的完整性和权限,但这是一个无底洞,坦率地说,对我来说太复杂了。
我可以总是要求自己提升 uac 管理员权限,顺便说一句,这很好用。但这不是它应该如何工作的。
仅 运行 一个继承 parent 完整性级别的程序真的有那么难吗?根据我目前的发现,这应该是默认行为。
你把你的文件放到 LocalLow 了吗? Windows 以低完整性 IIRC 启动此文件夹中的应用程序。
我正在为使用 C# 的统一游戏开发补丁程序。因为游戏是使用不支持 system.diagnostics.Process
的 il2cpp 构建的,所以我被迫通过 windows api.
启动补丁程序
我的问题是修补程序总是 运行 具有低完整性级别,只允许访问 appdata/locallow
目录。
我仔细检查了统一游戏的所有部分总是 运行 中等水平,但子进程总是降级到低水平。
我尝试了 CreateProcessA 和 ShellExecuteA API 调用,使用我能想到的有效参数的每一个合理组合。结果保持不变。尽管 parent 显然具有中等完整性,但 child 总是以较低的完整性级别结束。
我什至尝试了一些 old code 使用来自另一个进程的安全令牌来获得中等完整性。它成功地启动了我的程序,但同样是低完整性。
如果我通过单击或从 vs 本身启动程序,我会得到中等完整性,但是当从 cmd 调用它时,我得到同样低的完整性,而 cmd/PowerShell 在中 运行ning 上。
使用 icacls 设置完整性级别也没有什么不同。
修补程序只是一个简单的 .net 4 windows 表单应用程序(以防止旧 wine 等问题)与文件增量一起使用。
我显然在这里遗漏了一些东西。有人知道为什么吗?很难找到任何东西,因为所有结果要么谈论 uac 管理员提升,要么谈论如何降低一个人的完整性。
我尝试通读 msdn 的完整性和权限,但这是一个无底洞,坦率地说,对我来说太复杂了。
我可以总是要求自己提升 uac 管理员权限,顺便说一句,这很好用。但这不是它应该如何工作的。
仅 运行 一个继承 parent 完整性级别的程序真的有那么难吗?根据我目前的发现,这应该是默认行为。
你把你的文件放到 LocalLow 了吗? Windows 以低完整性 IIRC 启动此文件夹中的应用程序。