提问人:Luke Vo 提问时间:11/16/2023 最后编辑:Luke Vo 更新时间:11/16/2023 访问量:40
从不受信任的装载点部署和测试 WinUI3 应用
Deploy and test WinUI3 app from an untrusted mount point
问:
我有一个 MAUI 应用,我想在 Windows 上测试它(它在后台使用 WinUI3)。但是,它使用了一个具有很长路径文件的库,我无法部署(报告了 Github 问题)。我不能再缩短文件夹了,因为它位于更大的项目结构中。
我想过用 Junction 来缩短它:
New-Item New-Item -ItemType Junction -Path "D:\MyLongProjectPath" -Target "D:\Temp\Proj"
构建成功,但在部署时,我遇到了另一个问题:
DEP0700:应用注册失败。[0x80073CF0] 错误 0x800701C0:从位置打开文件:AppxManifest.xml失败,出现错误:无法遍历路径,因为它包含不受信任的装入点。
如何使联结“受信任”,或允许从不受信任的挂载点注册它?
注意:我只需要这样做用于测试,而不是用于生产。
答:
您面临的问题与 https://unit42.paloaltonetworks.com/junctions-windows-redirection-trust-mitigation/ 有关。
一种解决方案是让一些系统进程为您创建此连接点。请注意,仅仅运行提升的应用程序可能还不够;我所说的系统进程,是指一些能够在系统进程下创建一个点的内核模式代码。我们最近刚刚为CBFS Connect产品添加了针对此“问题”(实际上是一种安全措施,但对我们的客户来说这是一个问题的)的类似解决方法。
您可以尝试使用CBFS筛选器将转到D:\Temp\Proj*的请求动态重定向到D:\MyLongProjectPath(试用版就足够了)。为此,您可以添加一个重新分析规则,该规则将重定向请求。CBFS 过滤器不使用磁盘上的重新分析点,而只是将STATUS_REPARSE返回到文件打开请求。我认为这应该足以防止操作系统由于上述缓解措施而阻止请求。
IIRC,没有用于此类重新解析的示例,但操作是微不足道的 - 对 AddReparseRule 的调用和另一个启动操作的调用(您需要安装 CBFS 过滤器附带的驱动程序,因为它会完成所有繁重的工作)。
评论
上一个:在 java 中更改变量
下一个:如何检测文件系统是否支持权限?
评论