簡體   English   中英

授權USB驅動器

[英]Authorize USB drive

是否有任何方法或建議如何在用C#編寫的程序中准備和授權USB驅動器? 我不想准備某種白名單,但不知何故檢測到USB驅動器是由我准備的。 USB驅動器將用於更新我的程序。

檢測隱藏文件和文件夾不是解決方案,因為用戶始終可以顯示/刪除所有隱藏的內容。

此外,該程序必須檢測到Windows> = XP上的USB驅動器是否已獲得授權。

編輯

USB驅動器應該像普通USB一樣在每個操作系統上工作,除了它應該在我的程序中可以授權的東西。

基於一些Mike的SST建議,我已經設法准備了一個滿足我的解決方案。 它不直接使用C#,但它可以用這種語言管理,

我的解決方案中要執行的步驟:

  1. 在USB驅動器中創建最小的未分配分區(在我的情況下,它是7.8MB)
  2. 基於USB驅動器信息創建一個散列字符串並將其寫入該未分配的分區。

在該解決方案中,用戶根本不知道USB是否被授權,他可以格式化可見分區並在其上寫入所有內容。 即使復制該驅動器的映像也不會授權復制USB驅動器。

使用dd for Windows我可以讀取和寫入該哈希,我可以直接從c#運行該過程。

為什么要盡量避免使用特殊文件? 您將隱藏的txt文件與生成的哈希鍵放在其中。 此哈希是根據您的USB驅動器制造商序列號和密鑰(您的程序具有)生成的。 將USB驅動器放入計算機時,程序會從文件中讀取哈希鍵,並將其與程序計算出的值進行比較。 如果它們相同,則授權USB驅動器。 您沒有在沒有此文件的情況下授權USB驅動器。 如果您希望用戶無法刪除此文件,則應使用隱藏分區,但這是更復雜的解決方案。

加密整個驅動器或在其上放置加密文件/容器怎么樣? 密碼可以嵌入您的程序中。 (這不是最安全的解決方案,但對於您的目的來說很簡單。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM