是否有任何方法來覆蓋Win32 File API,如CreateFile()?我希望我的應用程序僅爲我的應用程序查看虛擬文件,但是,虛擬文件實際上並不存在。通過覆蓋Win32文件API來實現虛擬文件
回答
存在兩種方法 - 使用內核模式驅動程序(記錄一個)並且沒有這種驅動程序(一種冒險的方式)。 (1)創建一個虛擬文件系統驅動程序(或現有的驅動程序)和(2)創建一個文件系統過濾器驅動程序(或現有的驅動程序)。駕駛員的發展=一年左右的工作要做到完全正確。在MSDN中完整記錄驅動程序開發。
沒有內核模式驅動程序,您需要使用API掛鉤。像Detours,MadCodeHook和Boxedapp SDK這樣的庫可以做到這一點(並且可以讓你這樣做)。
掛鉤的API主題是相當大的描述它在這裏完全,但有一個很好的CodeProject article這個主題。
全系統?餿主意。如果它只是您的應用,請不要使用標準API並自行實施。但是,如果數據必須在會話之間持續存在,則必須將數據存儲在某處(文件,註冊表等)。
不是系統範圍的,而是僅用於我的應用程序。我已經有一個虛擬文件庫,但是,它不能被其他無法訪問我的虛擬文件庫的庫使用。 – 2010-04-11 10:50:37
http://www.codeproject.com/KB/system/Paladin.aspx – 2010-04-11 12:39:54
- 1. win32 api虛擬文件夾
- 2. PSFTP:覆蓋現有文件
- 3. Jekyll覆蓋現有文件
- 4. 覆蓋現有文件
- 5. 無法通過FTP覆蓋Wordpress文件
- 6. 覆蓋文件
- 7. 通過覆蓋文件更新文件中的一行
- 8. SVN絕對通過本地文件覆蓋遠程文件
- 9. 覆蓋現有的文本文件C++
- 10. 通過覆蓋屬性文件來保存狀態
- 11. 如何通過Win32 API實現.NET Process.Exited事件
- 12. 如何使用Win32實現代碼覆蓋工具調試API
- 13. 覆蓋虛函數不工作,頭文件和C++文件
- 14. C++虛擬方法覆蓋
- 15. 瞭解虛擬/覆蓋
- 16. 覆蓋非虛擬方法?
- 17. 如何實現類變種虛擬函數覆蓋
- 18. C#覆蓋虛擬函數,而不必實現另一個類
- 19. Golang虛擬文件
- 20. 虛擬文件夾
- 21. Web API作爲虛擬文件系統?
- 22. 力覆蓋文件
- 23. Serilog覆蓋文件
- 24. 覆蓋XML文件
- 25. 覆蓋js.erb文件
- 26. VBScript覆蓋文件
- 27. 文件被覆蓋
- 28. Java覆蓋文件
- 29. 覆蓋log4j.properties文件
- 30. Java覆蓋文件
您是否需要使用標準Win32 API來操作虛擬文件?我會創建自己的文件系統對象和函數,如果這不是一個需求,這意味着你可以任何你想要的行爲。 – 2010-04-09 12:20:45
我已經擁有了自己的API,它的API不是標準的Win32 API。我希望我的應用程序使用其他庫,不能使用我的虛擬文件庫能夠使用我的虛擬文件庫。這就是爲什麼我想重寫Win32文件API。 – 2010-04-11 10:49:14
你有多遠?請分享!我似乎可以在某些情況下完成DLL注入。 – menjaraz 2012-04-26 13:32:40