2008-08-17 24 views
5

我想在應用程序正在寫入的日誌文件上窺探。除了createfile和openfile之外,任何windows apis都可以獲得文件句柄?

我已成功將創建文件與來自MSR的detours庫掛鉤,但createfile從未似乎用文件調用,我對snooping感興趣。我也試着用相同的結果鉤住openfile。我不是一個有經驗的windows/C++程序員(或者甚至是一個有經驗的程序員),所以我最初的兩個想法是,在我掛鉤apis前應用程序調用createfile,或者有一些其他API用於創建文件/爲他們獲取手柄。

編輯: 感謝您的兩個很好的答覆。我會給予好評codingthewheel的答覆,因爲它是提供信息,但我沒有足夠的代表:(

回答

8

您可以使用Sysinternal的FileMon。 這是一個很好的監視器,可以告訴你究竟哪個文件相關的系統調用是 ,並且參數是什麼。

我認爲這種方法比鉤住API調用要容易得多,而且不那麼容易侵入。來自sysinternals的

+0

Filemon及其姐妹應用程序Regmon是偉大的東西 – 2008-11-09 16:53:21

6

這裏有可能是使用的一個鏈接:

Guerilla-Style File Monitoring with C# and C++

可以在不創建一個文件觸摸CreateFile API,但我可以問你使用的是什麼DLL注入方法?如果您使用的是Windows Hooks之類的東西,那麼您的DLL將在目標應用程序初始化之後的一段時間纔會被安裝,您會錯過早期調用CreateFile 。如果你使用類似DetourCreateProcessWithDll的東西,你的CreateFile鉤子可以在任何ap之前安裝摺疊啓動代碼運行。

根據我的經驗,99.9%創建/打開的文件導致對CreateFile的調用,包括通過C和C++庫,第三方庫等打開的文件。也許有一些未記錄的DDK函數不通過路由CreateFile,但對於典型的日誌文件,我懷疑它。

相關問題