2012-07-17 34 views
1

我想創建一個加密文件的應用程序的Windows驅動程序(比如文本文件)創建一個透明的加密和解密文件的用戶

當應用程序(比如記事本)嘗試打開該文件

,我應用程序攔截該請求並將解密的數據提供給應用程序。

記事本將不知道剛剛發生了什麼。

問題是我從哪裏開始?

我一直是一個十多年的業餘愛好者程序員,對C++非常熟悉,但這將是Visual C++的第一次。

回答

3

您可以使用文件系統微過濾器File system minifilter drivers來實現此類加密。 有了這個,你可以攔截所有文件操作(IRP)並決定你想要做什麼,其中可以包括加密。

但是,當您修改文件數據時,需要處理很多棘手的情況(例如,分頁IO,直接IO等)。另外,如果透明地更改文件數據大小,則很難進行管理,這可能會導致很多問題。因此,請儘量避免在加密/解密時更改文件數據大小。

爲了解您可以查看IFS套件文檔中的minispy和swapbuffers示例。

順便說一句,這不是VC++。

+0

看看這個:https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter – schoetbi 2015-09-18 14:09:48

1

本質上你是複製NTFS加密,所以從NTFS文件系統驅動程序開始。特別是,加密文件需要是「重新解析點」。