C#“将驱动器注入Windows资源管理器

问题描述 投票:-4回答:2

有没有一种方法可以将驱动器“注入”资源管理器?我要实现的目标:打开资源管理器时,应该有一个看起来像硬盘或网络驱动器正常分区的驱动器(唯一的区别是:没有容量信息(如果可能),并且带有不同的图标)。它不需要任何IO逻辑,我唯一需要做的就是单击它时采取措施。单击它时,将出现一个弹出窗口以插入密码,如果密码正确,我要删除假驱动器,请安装网络驱动器并打开网络驱动器的根目录(基本上,用户甚至都没有注意到它是一个假驱动器,好像他已解锁网络驱动器并打开了]

问候,隐藏

c# code-injection explorer virtual-drive
2个回答
2
投票

对于那些没有恶意的人并回答主要问题:

是的,有一种使用Win32 API来“注入”虚拟驱动器的方法:

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    private static extern bool DefineDosDevice(
        int dwFlags,
        string lpDeviceName,
        string lpTargetPath);

0
投票

更好的选择是创建一个虚拟驱动器,准备好显示信息,但是仅在打开其根目录并输入密码之后。在Windows上,这可以使用例如我们的CBFS Connect产品来完成;在Linux和macOS上,可以分别使用FUSE和“ Fuse for macOS”来完成。也就是说,您可以使用代码公开文件系统数据。

如果要(通过SMB / Windows网络安装)网络驱动器来代替已创建的虚拟驱动器,这将比较棘手-您可以主动安装网络磁盘,但可以使用文件系统过滤器驱动程序来阻止对磁盘的访问。网络磁盘,直到进行访问(例如通过资源管理器)并输入密码。使用我们的其他产品CBFS筛选器可以做到这一点。

这两种方法的特定实现都非常复杂,可以使用简单的代码片段进行说明。

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