我需要捕獲應用程序的DeviceIoControl()系統調用。在linux上,strace可以用來分析所有的ioctl調用。 Windows上是否有類似的功能?如何在Windows上記錄程序的DeviceIoControl調用
MSDN網站推薦一個名爲「Process Monitor」的程序來分析可執行文件的實時活動。但是,「進程監視器」不顯示有關DeviceIoControl調用的任何內容。
我需要捕獲應用程序的DeviceIoControl()系統調用。在linux上,strace可以用來分析所有的ioctl調用。 Windows上是否有類似的功能?如何在Windows上記錄程序的DeviceIoControl調用
MSDN網站推薦一個名爲「Process Monitor」的程序來分析可執行文件的實時活動。但是,「進程監視器」不顯示有關DeviceIoControl調用的任何內容。
你試過OSR的IRPTracker嗎?
IrpTracker允許您監視系統上的所有I/O請求數據包(IRP),而無需使用任何篩選器驅動程序,並與任何設備對象的引用,使即插即用系統完全不受干擾。除了能夠看到IRP取下驅動程序堆棧及其最終完成狀態的路徑之外,還提供了一個詳細視圖,可讓您查看IRP靜態部分的全部內容以及當前和之前的解釋視圖堆棧位置。
要捕獲DeviceIoControl()函數,您可以使用API掛鉤。我公司提供Deviare,一個高級接口的鉤子引擎。你不需要知道很多關於鉤子的東西可以自由使用(只是顯示一個對話說未註冊的版本)。它包括一個帶有源代碼的鉤子控制檯。
記憶博士(http://drmemory.org)工具自帶的系統調用跟蹤工具,稱爲drstrace列出了由目標應用程序的所有的系統調用,包括NtDeviceIoControlFile,與他們的論據一起:http://drmemory.org/strace_for_windows.html
最近發現Rohitab的API Monitor 它沒有更新2年,但它在我的Win7 x64上工作。它具有非常好的API過濾功能。