windbg调试驱动程序
Posted 项脊轩志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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内核安全与驱动开发
以上是关于windbg调试驱动程序的主要内容,如果未能解决你的问题,请参考以下文章