2008-10-17 38 views
1

我試圖構建一種方法來保持某些硬盤驅動器分區/ USB驅動器因安全原因(保護知識產權)而被訪問。我一直在想,當Windows嘗試訪問「鎖定的驅動器/ usb」時,試圖暫停並返回類似「無法訪問的驅動器」之類的東西。這只是一個想法,任何事情都是可能的/可能的?如果是這樣,任何指針?暫停存儲訪問?

C/C++

-Thanks

+0

@ B蜥蜴:這似乎是訪問這個詞,而不是訪問包。 – Fionnuala 2008-11-11 14:17:45

回答

2

您將需要編寫一個filter driver來實現您的目標。您需要將驅動程序放在磁盤驅動程序堆棧中的某個位置,並且要阻止要驅動器/分區的IRP_MN_START_DEVICE。

您將需要Windows Driver Kit來編寫驅動程序。在WDK中有一個過濾器驅動程序的示例。這個mailing list作爲一個非常有用的,如果你將搜索檔案,你會發現很多關於磁盤過濾驅動程序的信息。
關於編寫過濾器驅動程序的好文章是here,我想你需要註冊才能閱讀,但是如果你想寫驅動程序,你應該在這個網站上註冊。
相關書籍列表可以找到here

1

對於您可以將它們加密USB驅動器。

在工作中,我們使用Pointsec provider,它允許您只有在有密碼的情況下才能訪問任何機器上的驅動器。

我敢肯定有可用

你也許可以加密分區過免費軟件加密產品。

(基本上我不知道你爲什麼會想要寫的東西,可以通過其他方法進行適當管理的一些C/C++代碼)

2

的分區問題很容易。只需使用ACL即可阻止某些用戶訪問。

對於驅動器訪問,可能會在窗口某處設置一些設置來禁用它。在最糟糕的情況下,您可以嘗試強行刪除驅動程序(並因此可以讀取驅動器/棒的窗口)

0

您需要加密驅動器,其他任何事情都會讓攻擊者只將驅動器連接到另一個驅動器機器並提取內容。

你不應該自己實現加密 - 依賴別人的評論代碼要好得多。我建議TrueCrypt加密您的驅動器。

然後,也許你想在你的應用程序中加入一個鉤子來在它想要訪問加密數據時提示輸入密碼。或者,您可以在機器上安裝TrueCrypt,並根據處理數據的確切方式,讓用戶在訪問數據時連接驅動器。

0

請注意。任何涉及內核工作的東西,如果你還沒有經歷過這個領域的話,那麼它的開發時間以年爲單位。