實驗内容
監測給定PID值的程序調用NtCreateFile次數
在EPROCESS中增加一項資料: NtCreateFileCnt來記錄目前程序調用NtCreateFile的次數
注意NtCreateFileCnt的初始化問題(NtCreateProcess)
增加一個新系統調用,可以将指定Pid号的程序的NtCreateFileCnt顯示出來
1)在核心中DbgPrint輸出
2)傳回給使用者态程式并輸出
3)輸出内容必須包括:學号、程序PID、次數
以Notepad.exe等為測試程式
第一部分 編譯系統核心
編譯系統核心代碼的bat批處理檔案

編譯成功
拷貝新核心檔案到%windir%\system32目錄
wrkx86.exe
halacpim.dll(在Virtual PC中使用該檔案)
第二部分 在SourceInsight檢視修改源代碼
在SourceInsight建立一個項目Project->NewProject
在EPROCESS結構體中定義新的變量XgyCreateFileCnt
在合适的位置初始化變量,賦初值為0
[Create.c (base\ntos\ps)]
當調用NtCreateFile時對定義的XgyCreateFileCnt進行加1操作,實作程序調用的統計
增加一個新系統調用,可以将指定Pid号的程序的XgyCreateFileCnt顯示出來
1)在核心中DbgPrint輸出
2)傳回給使用者态程式并輸出
3)輸出内容必須包括:學号、程序PID、次數
第三部分 測試
以Notepad.exe等為測試程式
在VC中建立一個控制台程式
使用者态代碼:
執行結果
在任務管理器中顯示程序,檢視->選擇列,勾選PID(程序辨別符)