gpt4 book ai didi

c - 从虚拟路径启动应用程序时如何防止 SxS 错误?

转载 作者:行者123 更新时间:2023-11-30 18:09:19 24 4
gpt4 key购买 nike

我目前正在通过虚拟化 NtDll.dll 级别的所有文件/注册表操作来开发一个简单的应用程序虚拟化层。

但是当我从虚拟路径启动应用程序时,如果实际主机中不存在虚拟路径,则应用程序将无法启动。

这是示例
如果虚拟文件系统的基本路径是 H:\VirtualFS,并且 H:\VirtualFS\c\folder\file.exe 映射到 c:\folder\file.exe。 如果我从虚拟化层启动此 exe,并且主机操作系统包含文件夹 c:\folder,则我可以正确启动 file.exe。 如果主机操作系统没有文件夹 c:\folder,则应用程序启动会因 SxS 错误而失败,错误如下

     Generate Activation Context failed for c:\folder\file.exe. Reference error message: The operation completed successfully.

我什至尝试重写 RTCreateProcessParameters 函数以将虚拟路径映射到真实路径,但仍然存在相同的错误。

任何帮助/指导都会非常有帮助。谢谢。

最佳答案

当然不支持 Hook ntdll.dll,但遇到错误的原因是没有从进程上下文中读取路径。相反,激活上下文是通过委托(delegate)给外部服务从 list 生成的,这可能不会影响您的虚拟化层。我可以建议您查看文件系统过滤器吗?

关于c - 从虚拟路径启动应用程序时如何防止 SxS 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com