DesktopBridge 应用程序可以使其组件可供其他应用程序使用吗?

问题描述 投票:0回答:1

我的 DesktopBridge 完全信任应用程序附带了一些 DLL,我希望能够从另一个非打包的第 3 方应用程序加载(通过注入)。

问题在于 DLL 的权限设置为只有应用程序包可以“读取和执行”,而用户只能“读取”。

因此,第 3 方常规桌面应用程序无法使用

ERROR_ACCESS_DENIED
加载 DLL。

所以问题是:我的 DesktopBridge 应用程序能否以某种方式将 DLL 标记为用户组的“读取和执行”而不通过 UAC(似乎这些文件归 SYSTEM 所有)?

附注为什么没有给出执行权限,但是给出了读取权限?

desktop-bridge
1个回答
0
投票

这通常是不可能的,因为您的应用程序可能随时被卸载/维护,这意味着 DLL 不再可供其他应用程序使用。这些权限至少部分是为了防止这种事情发生。

MSIX 支持适当的扩展机制,但它依赖于进程外架构,并且还需要更新目标应用程序。

如果您动态注入 DLL 并控制其他进程的生命周期,您可以临时将 DLL 从您的安装位置复制到磁盘上的另一个位置,将它们加载到其他进程中,然后删除副本它们不再使用。

也不建议这样做,因为如果出现崩溃或其他错误,它可能会存在留下这些 DLL 的风险。尽管如此,如果您有绝对需要此组合才能工作的特定要求,那么它“有效”(您必须出于原因X而对 MSIX 进行打包,并且您必须将 DLL 与其他未打包的进程一起注入进程内)应用程序的原因 Y),并且,理想情况下,由于该方法的缺点,您不会广泛分发此应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.