windbg調試驅動程序


不正確之處歡迎指正,高手勿噴~

配置windbg路徑

Symbol path:SRV*F:\Windows\symbolxp3*http://msdl.microsoft.com/download/symbols;C:\Users\bojay\Desktop\first\objchk_wxp_x86\i386
Source path:C:\Users\bojay\Desktop\first
Image path:C:\Users\bojay\Desktop\first\objchk_wxp_x86\i386

【注意】windbg路徑要根據個人具體情況而定,不能復制!

進入實操

0x00>>將first.sys安裝到虛擬機Windows XP系統,啟動windbg,虛擬機立刻不能動,點擊windbg F5,回到虛擬機啟動驅動程序,windbg馬上跳到int3斷點處,如下:

 

0x01>>設置兩個斷點F9,開始單步調試,執行到打印輸出那行代碼后,查看windbg輸出:

 

0x02>>F5,回到虛擬機

 

0x03>>停止,查看windbg輸出

 

#include <ntddk.h>
    
// 提供一個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
    // 這是我們的內核模塊的入口,可以在這里寫入我們想寫的東西。
    DbgPrint("first: Hello, my salary!");

    // 設置一個卸載函數便於這個函數能退出。
    driver->DriverUnload = DriverUnload;
    return STATUS_SUCCESS;
}

 

參考書籍:

Windows內核安全與驅動開發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM