windows内核驱动

article/2025/10/5 16:43:58

内核&驱动基础


WDK(Windows Driver Kit)

内核编程需要使用WDK

WDK 下载

windows xp wdk 下载地址

WDK 安装

勾选所有的安装项,避免错过一些例子

这里写图片描述

  • 默认安装目录: C:\WinDDK

first驱动开发

源码 first.c

#include <ntddk.h>#define DEBUG/** 卸载函数*/
VOID DriverUnload(PDRIVER_OBJECT driver)
{DbgPrint("good bye my world...\r\n");
}/** 装载函数*/
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
/** 在调试时使用int 3,正常运行时驱动运行int 3 会导致蓝屏*/
#ifdef DEBUG_asm int 3
#endifDbgPrint("despacito world... \r\n");driver->DriverUnload = DriverUnload;return STATUS_SUCCESS;
}

编译驱动

makefile

驱动编写需要Makefile,放在和源文件同级目录即可

#############################################################################
#
#       Copyright (C) Microsoft Corporation 1998, 1999
#       All Rights Reserved.
#
##############################################################################
# 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

http://chatgpt.dhexx.cn/article/kFxF5mlO.shtml

相关文章

Windows 内核会换为 Linux 吗?

关注、星标公众号&#xff0c;不错过精彩内容 来源&#xff1a;网络 编辑整理&#xff1a;strongerHuang 如果装个纯linux&#xff0c;则一些windows软件没法用。如果用windows然后装个虚拟机&#xff0c;在虚拟机上安装linux&#xff0c;又感觉麻烦而且占用电脑资源。 现在win…

Windows内核之系统架构

一.架构概述 下图显示了Windows的基本结构。Windows采用双模式来保护操作系统本身&#xff0c;以避免被应用程序的错误所波及。操作系统核心运行在内核模式下&#xff0c;应用程序的代码运行在用户模式下。每当应用程序需要用到系统内核或内核的扩展模块&#xff08;内核驱动程…

Windows内核原理与实现之Windows设备驱动程序

文章摘录自《Windows内核原理与实现》一书。 设备驱动程序是操纵设备的内核模块&#xff0c;I/O 管理器、即插即用管理器和电源管理器都需要与设备的驱动程序打交道。 在Windows I/O 系统中&#xff0c;设备驱动程序不仅为操作系统提供了支持各种 I/O 设备的能力&#xff0c;…

Windows内核的基本概念

Windows内核的基本概念 1 处理器模式 Windows使用 0 和3 两种特权级。0 表示CPU处于内核模式(kernel mode)&#xff1b;3 表示用户模式(user mode)。 1.1 内存管理 Windows 将32位虚拟内存空间按照0~4 GB的线性地址空间看待。其中2~4GB是所有进程共享的&#xff0c;为系…

Windows内核--源代码在哪里?(1.1)

大部分人能看到这篇帖子, 想必已经用过Windows系统多年了... 微软官方并不完全公开源代码 想清楚Windows技术内幕&#xff0c;就需要逆向工具。幸运的是: WRK源代码(Windows Research Kernel) (XP/Server 2003)Windows 2000源代码(Kernel和用户层) 深入解析Windows操作系统(最…

windows内核驱动开发(WDK环境搭建)

去官网下载WDK安装包和Visual Studio 下载 Windows 驱动程序工具包 (WDK) - Windows drivers | Microsoft Docs 首先安装Visual Studio 这个就不用我介绍了怎么安装了。 下面直接下载步骤二和步骤三的SDK和WDK。 SDK下载地址 WDK下载地址 注意下载的SDK和WDK版本需要统…

Windows内核--子系统(3.5)

到底什么是子系统? 子系统是用户层概念。在Windows内核之上&#xff0c;如果想要执行类UNIX应用程序&#xff0c;就是POSIX子系统&#xff0c;如果要类似OS/2环境&#xff0c;就是OS/2子系统。 如何能模拟出不同子系统呢? 一般需要子系统用户态应用程序和相关DLL支援。 对于W…

无法正常进入Windows也能开启Windows内核调试

1 背景 Windows的启动的早期阶段&#xff0c;大致分为3步&#xff1a;bootmgr&#xff0c;winload&#xff0c;nt内核加载。 下图是Winload阶段的一个报错。 如果出现Windowslogo&#xff0c;一般就是进入nt内核加载了。 我们经常开的调试功能是nt内核加载后的调试。无法调试…

windows内核开发学习笔记二十四:windows内核架构

从上图上可以看出&#xff0c;windows内核主要层次划分为三个层次&#xff0c;以及windows子系统、文件系统、网络、设备驱动程序等几个部分。 硬件抽象层&#xff08;Hardware Abstraction Layer&#xff0c;简称HAL&#xff09;&#xff1a;主要是把所有与硬件相关联的代码隔…

Windows内核--内核空间和用户空间(3.6)

内核喜欢抽象出句柄给用户空间 句柄, Handle, 表达处理、控制之意。内核不会直接暴露指针给用户空间&#xff0c;这样会增大内核风险。相反&#xff0c;内核抽象出Handle给用户态&#xff0c;不管是文件、进程、线程等对象&#xff0c;通过Handle可以隐藏内核细节&#xff0c;统…

Windows内核基础之权限级别

权限级别是CPU中的一个概念&#xff0c;CPU中包含4个权限级别&#xff0c;分别是0环&#xff0c;1环&#xff0c;2环&#xff0c;3环&#xff0c;CPU设计制造商最初希望0环用于运行内核&#xff0c;1环和2环运行设备驱动&#xff0c;3环运行应用程序&#xff0c;但是系统设计者…

Windows内核--调试内核源代码(1.5)

Kernel编译和普通应用程序编译有差异吗&#xff1f; 最终Kernel二进制档是给CPU执行的&#xff0c;只要用普通的C编译器能正常编译出给CPU执行的二进制程序即可&#xff0c;从编译角度&#xff0c;内核和应用程序无差别。Windows内核是exe文件。 内核与用户应用程序运行环境有…

Windows内核驱动Hook入门

文章目录 Hook框架选择基于微软规范的框架微软规范以外的框架简单介绍一下InfinityHook 获取内核中的函数地址内核中导出的函数内核未导出的函数获取 SSDT ShadowSSDT 地址获取系统服务号手动获取获取并判断系统版本 代码自动获取 获取GUI相关的函数地址&#xff0c;还需附加GU…

Windows内核编程(二)-第一个内核程序

第一个内核程序 通过 Visual Studio新建工程 注意事项&#xff1a; 大部分widnows驱动程序都是内核驱动(Kernel Driver)&#xff0c;所以本笔记不分"驱动程序"与"内核编程"&#xff0c;也不区分"内核模块"(Kernel Module)、“驱动程序”(Drive…

Windows内核原理与实现之Windows研究内核(WRK)

Windows并非一个开放源码的操作系统&#xff0c;但正如上一章所提&#xff0c;Microsoft开放了一份以Windows XP x64和Windows Server 2003 SP1为基础的内核源代码&#xff0c;它可以编译和运行&#xff0c;作为教育科研机构的教学实践和研究的平台使用&#xff0c;称为WRK&…

Windows内核结构

Windows内核结构 第一篇博客&#xff0c;随便写下练练手:) Windows内核总共分为三层&#xff1a; 与硬件直接打交道的这一层叫做硬件抽象层简称HAL&#xff0c;这一层的用意就是把所有与硬件相关联的代码逻辑隔离到一个专门的模块中&#xff0c;从而做到尽可能的独立于硬件平…

WINDOWS内核对象及其理解

一&#xff0e;前言 Windows中有很多像进程对象、线程对象、文件对象等等这样的对象&#xff0c;我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块&#xff0c;由系统创建并维护&#xff0c;这个内存对象是一个数据结构&#xff0c;维护着与对象相关的信息&a…

windows内核——基石

友链 内存布局 用户内存空间和内核内存空间之间的gap是为了避免不经意的越界而导致安全问题 CPU的初始化 系统启动期间&#xff0c;会对所有的处理器进行初始化操作 大部分初始化操作我们都不必了解&#xff0c;因为你了不了解都不影响你的逆向&#xff0c;毕竟你又不是开发…

Windows内核原理与实现--Windows基本结构概述

一、Windows系统结构概述 1、Windows采用双模式来保护操作系统本身,内核模式和用户模式。在Windows中,用户代码和内核代码有各自的运行环境,而且它们可以访问的内存空间也并不相同。在x86中,内核代码可以访问当前进程的4GB虚拟地址空间,而用户代码只能访问底端2GB虚拟地址…

《Windows内核原理与实现笔记》(一)Windows系统结构和基本概念

Windows内核结构 上图是windows内核的组成结构 如图Windows内核分三层&#xff0c;与硬件直接打交道的是硬件抽象层HAL&#xff0c;这一层把所有与硬件相关代码逻辑隔离到一个专门模块中&#xff0c;从而是上层尽可能独立于硬件平台。HAL是一个独立动态链接库&#xff0c;wind…