我想創建一個加密文件的應用程序的Windows驅動程序(比如文本文件)創建一個透明的加密和解密文件的用戶
當應用程序(比如記事本)嘗試打開該文件,我應用程序攔截該請求並將解密的數據提供給應用程序。
記事本將不知道剛剛發生了什麼。
問題是我從哪裏開始?
我一直是一個十多年的業餘愛好者程序員,對C++非常熟悉,但這將是Visual C++的第一次。
我想創建一個加密文件的應用程序的Windows驅動程序(比如文本文件)創建一個透明的加密和解密文件的用戶
當應用程序(比如記事本)嘗試打開該文件,我應用程序攔截該請求並將解密的數據提供給應用程序。
記事本將不知道剛剛發生了什麼。
問題是我從哪裏開始?
我一直是一個十多年的業餘愛好者程序員,對C++非常熟悉,但這將是Visual C++的第一次。
您可以使用文件系統微過濾器File system minifilter drivers來實現此類加密。 有了這個,你可以攔截所有文件操作(IRP)並決定你想要做什麼,其中可以包括加密。
但是,當您修改文件數據時,需要處理很多棘手的情況(例如,分頁IO,直接IO等)。另外,如果透明地更改文件數據大小,則很難進行管理,這可能會導致很多問題。因此,請儘量避免在加密/解密時更改文件數據大小。
爲了解您可以查看IFS套件文檔中的minispy和swapbuffers示例。
順便說一句,這不是VC++。
本質上你是複製NTFS加密,所以從NTFS文件系統驅動程序開始。特別是,加密文件需要是「重新解析點」。
看看這個:https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter – schoetbi 2015-09-18 14:09:48