代码之家  ›  专栏  ›  技术社区  ›  backslash17

如何限制应用程序仅从已知的USB闪存驱动器运行?

  •  4
  • backslash17  · 技术社区  · 17 年前

    我需要一个应用程序只从一个特定的USB闪存驱动器运行。我用WMI做了一些测试 Win32_磁盘驱动器 阶级与社会 PNPdeviceID 所有物使用此数据将应用程序注册到许可证服务器(web服务)是一个非常好的主意,但我正在寻找第二种方法来重新强制此方法,以使此过程更难中断。

    我正在考虑在驱动器中创建第二个小的隐藏分区,并将PNPdeviceID获取的序列号或其他信息作为名称定位在其中。接受任何其他想法、方法或建议。

    接口类型 属性是“USB”。Im在web服务支持的许可证管理器中使用PNPDeviceID的哈希值注册应用程序。我正在寻找另一种验证方法。

    2 回复  |  直到 17 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    您可以检查卷序列号,这将捕获到临时复制到新格式化的卷,但它不会检测到完全字节精确的卷拷贝。
    To protect software by accessing harddisk serial no
    Any faster method to get Volume Serial number?

        2
  •  1
  •   Thomas Levesque    17 年前

    您可以检查运行程序的驱动器类型:

    string path = Process.GetCurrentProcess().MainModule.FileName;
    FileInfo fileInfo = new FileInfo(path);
    string driveRoot = fileInfo.Directory.Root.Name;
    DriveInfo driveInfo = new DriveInfo(driveRoot);
    if (driveInfo.DriveType != DriveType.Removable)
    {
        MessageBox.Show("Must run from removable drive");
        Application.Exit();
    }