WINDOWS內核開發環境配置

jopen 11年前發布 | 14K 次閱讀 開發

1.     下載和安裝wdk

Windows Driver Kit Version 7.1.0下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=11800

注意的問題:

(1)    安裝到一個簡單的路徑如c:\WinDDK,避免路徑上有空格,否則可能出現編譯問題。

(2)    選擇完全安裝,否則會錯過一些代碼例子。

2.     編寫第一個例子

first.c文件

///
/// @file first.c
/// @author crazy_chu
/// @date2008-11-1
/// 
 
#include 
         
// 提供一個Unload函數只是為了讓這個程序能動態卸載,方便調試
VOID DriverUnload(PDRIVER_OBJECT driver)
{
         //但是實際上我們什么都不做,只打印一句話:
         DbgPrint("first: Our driver is unloading…\r\n");
}
 
// DriverEntry,入口函數。相當于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
        #if DBG
        //       _asm int 3
        #endif
         //這是我們的內核模塊的入口,可以在這里寫入我們想寫的東西。
         //我在這里打印一句話。因為”Hello,world”常常被高手恥笑,所以
         //我們打印一點別的。
         DbgPrint("first:Hello, my salary!");
 
         //設置一個卸載函數便于這個函數能退出。
         driver->DriverUnload = DriverUnload;
         return STATUS_SUCCESS;
}

Makefile文件

!IF 0
 
Copyright (C) Microsoft Corporation, 1999 -
2002
 
Module Name:
 
   makefile.
 
Notes:
 
   DO NOT EDIT THIS FILE!!!  Edit
.\sources. if you want to add a new source
   file to this component.  This file
merely indirects to the real make file
   that is shared by all the components of Windows NT (DDK)
 
!ENDIF
 
!INCLUDE $(NTMAKEENV)\makefile.def

Makefile文件就是這些,永遠都不需要改動的。

SOURCES文件 :
TARGETNAME=first
TARGETTYPE=DRIVER
SOURCES=first.c
TARGETPATH=obj

TARGETNAME是編譯出來模塊的名字,比如first.sys

SOURCES代碼要編譯的源文件,first.c

這三個文件寫好了,接下來編譯。

         從開始菜單——所有程序——Windows Driver Kits——WDK的版本——Build Environment——Windows 7——x86 Checked Build Environment

         cd進入工程的目錄,執行build命令。即可編譯生成first.sys位于first\objchk_win7_x86\i386目錄下。

WINDOWS內核開發環境配置

3.     安裝和運行第一個例子

編譯生成的.sys文件不能直接運行,要用到類似srvinstw之類的軟件安裝和卸載。

查看輸出信息要用到類似DebugView之類的軟件,記得勾選Capture Kernel選項。

安裝完服務,執行:

$net start first
$net stop first

結果如下:

WINDOWS內核開發環境配置

4.     Win7調試內核模塊(虛擬機)

(1)      安裝vmvare虛擬機,安裝win7系統

(2)      安裝WinDbg(能調試windows內核模塊的軟件并不多,另還有SyserSoftice)

(3)      設置虛擬機中的win7調試執行模式,步驟如下:

按照《寒江獨釣windows內核安全編程》上面的操作,沒有配置成功,具體是設置完debug啟動模式,但是串口連接不上。(應該可以連上,在虛擬機中按回車)

 

         這里用一種新的,更好的方法。用一個VirtualKD軟件。

 

1.      下載并解壓VirtualKD-2.8

2.      把解壓文件夾里面的target文件夾拷貝到虛擬機

3.      在虛擬機中運行target/vminstall.exe

WINDOWS內核開發環境配置

安裝完成后重啟。

4.      在主機運行vmmon程序

WINDOWS內核開發環境配置

Run debugger會自動啟動WinDbg程序(路徑設置好)

WINDOWS內核開發環境配置

顯示紅框里面內容時,在虛擬機中按回車!重要!重要!!!

 

至此,已經可以對win7進行內核調試了。

來自:http://my.oschina.net/zangzy/blog/182883

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!