授权USB驱动器

时间:2014-06-16 10:13:22

标签: c# windows usb usb-drive

是否有任何方法或建议如何在用C#编写的程序中准备和授权USB驱动器?我不想准备某种白名单,但不知何故检测到USB驱动器是由我准备的。 USB驱动器将用于更新我的程序。

检测隐藏文件和文件夹不是解决方案,因为用户始终可以显示/删除所有隐藏的内容。

此外,该程序必须检测到Windows驱动器上的USB驱动器是否已获得授权> =。

修改

USB驱动器应该像普通USB一样在每个操作系统上工作,除了它应该在我的程序中可以授权的东西。

3 个答案:

答案 0 :(得分:2)

根据一些Mike of SST advices,我设法准备了满足我的解决方案。它不直接使用C#,但可以用该语言进行管理,

我的解决方案中的步骤:

  1. 在USB驱动器中创建最小的未分配分区(在我的情况下,它是7.8MB)
  2. 基于USB驱动器信息创建一个散列字符串并将其写入该未分配的分区。
  3. 在该解决方案中,用户根本不知道USB是否被授权,他可以格式化可见分区并在其上写下所有内容。即使复制该驱动器的图像也不会授权复制USB驱动器。

    使用dd for Windows我能够读取和写入该哈希,我可以直接从c#运行该过程。

答案 1 :(得分:1)

为什么要尝试避免使用特殊文件?您将隐藏的txt文件与生成的哈希键放在其中。此哈希是根据您的USB驱动器制造商序列号和密钥(您的程序具有)生成的。将USB驱动器放入计算机时,程序会从文件中读取哈希键,并将其与程序计算出的值进行比较。如果它们相同,则授权USB驱动器。您没有在没有此文件的情况下授权USB驱动器。如果您希望用户无法删除此文件,则应使用隐藏分区,但这是更复杂的解决方案。

答案 2 :(得分:0)

如何加密整个驱动器或在其上放置加密文件/容器?密码可以嵌入您的程序中。 (这不是最安全的解决方案,但对于您的目的来说很简单。)