天天看點

作業系統實驗 修改系統調用

實驗内容

監測給定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(程序辨別符)

作業系統實驗 修改系統調用
作業系統實驗 修改系統調用
作業系統實驗 修改系統調用
作業系統實驗 修改系統調用
作業系統實驗 修改系統調用
作業系統實驗 修改系統調用
上一篇: MmInitializeMdl

繼續閱讀