一、windows内核开发需要的软件

1.WDK

2.WinDbg

3.virtualKD

4.DebugView

5.Visual C++ 6.0

6.VMware Workstation

二、windows内核开发软件的安装


1.WDK的安装和配置

wdk的下载地址:http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO

首先下载驱动开发包GRMWDK_EN_7600_1.ISO,并解压到本地文件夹,解压后WDK安装包:

OK到现在为止,WDK的安装和配置全部完成,接下来的活就是它的使用。

2.virtualKD的安装和配置

在内核驱动开发时,VMware Workstation是必不可少的,VMware
Workstation的安装教程网上很多(问度娘)。

假设VMware
Workstation虚拟机已经安装好了,并且已经成功安装了Windows XP系统。笔者的虚拟机的版本:VMware Workstation10.1,虚拟机里安装的系统版本: Windows XP sp3(目标机),本地安装的系统版本:Windows
XP sp3(宿主机)

virtualKD的下载地址:http://virtualkd.sysprogs.org/download/VirtualKD-2.8.exe

首先下载virtualKD到本地,并解压,如图:

现在从虚拟机xp系统回到本地调试机XP系统中:

OK到现在为止,virtulKD的安装和配置全部完成,接下来的活就是它的使用。

3.内核驱动开发IDE的使用

其实用EditPlus等文本软件工具也可以进行驱动程序的编码,但是不太方便。

由于驱动程序的编写主要是用C/C++,因此我们可以配置一下Visual C++ 6.0来进行驱动程序的简易编写。

三、windows内核驱动程序的编写

一个简单的驱动程序所包含的文件:

Hello.c的源码:

<span style="font-family:Microsoft YaHei;font-size:10px;">//开发NT驱动需要的头文件
#include <ntddk.h> //驱动卸载函数的声明
VOID DriverUnload(
IN PDRIVER_OBJECT DriverObject
); //驱动入口点函数
NTSTATUS DriverEntry(__in struct _DRIVER_OBJECT *DriverObject,
__in PUNICODE_STRING RegistryPath
)
{
//设置驱动的卸载函数
DriverObject->DriverUnload = DriverUnload; //只会在checked版下显示输出
KdPrint(("hello wdk!\n")); return STATUS_SUCCESS;
} //驱动卸载函数
VOID DriverUnload(
IN PDRIVER_OBJECT DriverObject
)
{
KdPrint(("DriverUnload\n"));
} //注:当在VC6.0的Include File里添加了WDK的头文件以后,
//在VC6.0里写代码就会出现代码高亮</span>

makefile文件--对于所有的驱动程序来说,内容是不变的(直接拷贝过来使用)。

sources文件--驱动编译的配置文件

一个简单的驱动程序需要的3个文件都准备好了,现在可以开始编译了:

开始编译:

编译后的文件夹:

编译成功生成的驱动:

windows内核开发环境的简易搭建的更多相关文章

  1. Windows内核开发-5-(2)-内核模式调试

    Windows内核开发-5-(2)-内核模式调试 普通用户模式的调试,采取的是给进程添加一个线程来挂起断点,作为一个调试器的线程在进程中使用.照这样来类推,对操作系统调试相当于添加一个进程来限制操作系 ...

  2. 【Cocos2d-X开发学习笔记】第01期:PC开发环境的详细搭建

    本文使用的是cocos2d-x-2.1.4版本 ,截至目前为止是最新稳定版 所谓的开发环境就是制作游戏的地方,打个比方读者就会十分清楚了.比如提到做饭,人们都会想到厨房.这是 因为厨房有炉灶.烟机.水 ...

  3. Windows内核开发-6-内核机制 Kernel Mechanisms

    Windows内核开发-6-内核机制 Kernel Mechanisms 一部分Windows的内核机制对于驱动开发很有帮助,还有一部分对于内核理解和调试也很有帮助. Interrupt Reques ...

  4. Windows内核开发-10-监听对象

    Windows内核开发-10-监听对象 Windows内核除了可以监听进程,线程.dll还可以监听特定的对象和注册表.这里先讲一下监听对象. 监听对象 内核提供了一种可以监听对特定的对象类型的句柄进行 ...

  5. windows phone7开发环境配置错误

    遇到下面这样一个问题:在配置windows phoe7开发环境的时候出现如下错误,以及相应的解决方案,希望对大家有所帮助. 装完环境后出现下面错误: [caption id="attachm ...

  6. Grails开发环境的高速搭建

    Grails开发环境的高速搭建 1 JAVA环境变量的设置和Grails设置环境变量 个人參考 JAVA_HOME =E:\kaifa\Java\jdk7_32 GRAILS_HOME =E:\kai ...

  7. Windows内核开发-2-开始内核开发-2-内核开发入门

    Windows内核开发-2-开始内核开发-2- 第一个驱动程序: 直接采用vs2019中的Empty WDM Driver 模块创建: 初始的项目文件夹中有一个Driver Files里面会有一个.i ...

  8. Windows内核开发-3-内核编程基础

    Windows内核开发-3-内核编程基础 这里会深入讲解kernel内核的API.结构体.和一些定义.考察代码在内核驱动中运行的机制.最后把所有知识合在一起写一个有用的驱动. 本章学习要点: 1:通用 ...

  9. Windows内核开发-4-内核编程基础

    Windows内核开发-4-内核编程基础 这里会构建一个简单但是完整的驱动程序和一个客户端,部署内核执行一些平时user下无法执行的操作. 将通过以下内容进行讲解: 1 介绍 2 驱动初始化 3 Cr ...

随机推荐

  1. 再来认识一下 Java 序列化

    前言 在面试中,Java 序列化被问到的几率还是挺高的.所以搜集了 Java 序列化常见的问题,由浅入深的帮助大家进一步学习和理解. 序列化基础知识 什么是序列化? Java 序列化是 JDK 1.1 ...

  2. docker在vulhub中的使用命令合集

          (1)docker  ps(查询 docker 进程的所有容器) (2)docker  info(查看docker详细信息) (3)service docker start(启动docke ...

  3. [源码分析] 消息队列 Kombu 之 Consumer

    [源码分析] 消息队列 Kombu 之 Consumer 目录 [源码分析] 消息队列 Kombu 之 Consumer 0x00 摘要 0x01 综述功能 0x02 示例代码 0x03 定义 3.1 ...

  4. 简单3步快速生成千万级别mysql测试数据库,模拟电商数据

    https://blog.csdn.net/wuda0112/article/details/88387735 github项目地址:https://github.com/wuda0112/mysql ...

  5. Java面向对象(一些问题)

    2. Java 面向对象 2.1. 类和对象 2.1.1. 面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高. 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量 ...

  6. P1085_不高兴的津津(JAVA语言)

    package 顺序与分支; /* * 题目描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外, 还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴. 但 ...

  7. 攻防世界 reverse reverse-for-the-holy-grail-350

    reverse-for-the-holy-grail-350   tu-ctf-2016 程序流程很简单,就一个检验函数: 1 __int64 __fastcall stringMod(__int64 ...

  8. 使用C# (.NET Core) 实现单体设计模式 (Singleton Pattern)

    本文的概念内容来自深入浅出设计模式一书 由于我在给公司做内培, 所以最近天天写设计模式的文章.... 单体模式 Singleton 单体模式的目标就是只创建一个实例. 实际中有很多种对象我们可能只需要 ...

  9. 基于sklearn的波士顿房价预测_线性回归学习笔记

    > 以下内容是我在学习https://blog.csdn.net/mingxiaod/article/details/85938251 教程时遇到不懂的问题自己查询并理解的笔记,由于sklear ...

  10. linux日志文件说明

    /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与 ...