簡體   English   中英

跟蹤打開特定文件的進程

[英]Tracing which process that has opened a particular file

從Windows中的內核模式,我能夠攔截和監視在特定磁盤上執行的幾乎所有操作。 當為任何目的打開文件時,我會收到一個事件。

現在我想跟蹤打開它的應用程序。 我認為這應該是可能的,但不知道如何。

我正在使用Windows Win32 API中的標准文件管理功能。

提前致謝。

/羅伯特·

Sysinternals Filemon (免費)做到這一點,更好的是他們描述了他們是如何做到的:

對於Windows 9x驅動程序,FileMon的核心位於虛擬設備驅動程序Filevxd.vxd中。 它是動態加載的,在初始化時,它通過VxD服務IFSMGR_InstallFileSystemApiHook安裝文件系統過濾器,以將其自身插入到所有文件系統請求的調用鏈中。 在Windows NT上,FileMon的核心是一個文件系統驅動程序,它創建過濾器設備對象並將其附加到目標文件系統設備對象,以便FileMon將查看針對驅動器的所有IRP和FastIO請求。 當FileMon看到打開,創建或關閉調用時,它會更新內部哈希表,該表用作內部文件句柄和文件路徑名之間的映射。 每當它看到基於句柄的調用時,它會在哈希表中查找句柄以獲取顯示的全名。 如果基於句柄的訪問引用在FileMon啟動之前打開的文件,則FileMon將無法在其哈希表中找到映射,而只是顯示句柄的值。

-亞當

Sysinternals的在做這件事,並解釋它做了一個好工作,那的舊版本的一些源代碼仍然可以在這里例如,代碼是有據可查的(恕我直言) 這也可能是一個好的開始。

我會使用Sysinternals的“handle.exe”應用程序。

或者,你實際上是在嘗試做這個程序嗎?

只需使用Win32 N.API從File句柄中獲取pid。 這是15年的常見問題解答......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM