windows内核开发环境的简易搭建

摘要:
1、 Windows内核开发所需的软件1.WDK2.WinDbg3.virtualKD4.DebugView5.Visual C++6.06.VMwareWorkstation II。安装Windows内核开发软件1.WDK安装和配置。wdk的下载地址:http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE68504

一、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安装包:

windows内核开发环境的简易搭建第1张windows内核开发环境的简易搭建第2张

windows内核开发环境的简易搭建第3张

windows内核开发环境的简易搭建第1张

windows内核开发环境的简易搭建第5张

windows内核开发环境的简易搭建第6张

windows内核开发环境的简易搭建第7张

windows内核开发环境的简易搭建第1张

windows内核开发环境的简易搭建第1张

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到本地,并解压,如图:

windows内核开发环境的简易搭建第1张windows内核开发环境的简易搭建第11张

windows内核开发环境的简易搭建第12张

windows内核开发环境的简易搭建第13张

windows内核开发环境的简易搭建第14张windows内核开发环境的简易搭建第15张

windows内核开发环境的简易搭建第1张

windows内核开发环境的简易搭建第1张

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

windows内核开发环境的简易搭建第18张

windows内核开发环境的简易搭建第19张

windows内核开发环境的简易搭建第1张

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


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

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

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

windows内核开发环境的简易搭建第1张windows内核开发环境的简易搭建第22张windows内核开发环境的简易搭建第23张

windows内核开发环境的简易搭建第1张

windows内核开发环境的简易搭建第1张

windows内核开发环境的简易搭建第26张


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

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

windows内核开发环境的简易搭建第27张

windows内核开发环境的简易搭建第1张

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!
"));

  return STATUS_SUCCESS;
} 

//驱动卸载函数
VOID DriverUnload( 
			 IN PDRIVER_OBJECT  DriverObject 
		  )
{
	KdPrint(("DriverUnload
"));
}

//注:当在VC6.0的Include File里添加了WDK的头文件以后,
//在VC6.0里写代码就会出现代码高亮</span>

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

windows内核开发环境的简易搭建第29张


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

windows内核开发环境的简易搭建第30张


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

windows内核开发环境的简易搭建第31张

开始编译:

windows内核开发环境的简易搭建第32张

编译后的文件夹:

windows内核开发环境的简易搭建第33张

编译成功生成的驱动:

windows内核开发环境的简易搭建第34张







免责声明:文章转载自《windows内核开发环境的简易搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Windows环境下搭建Snort+BASE入侵检测系统easyUI详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何使能hyper-v的增强功能?

1. 在hyper-v的设置中使能增强功能 2. 运行在hyper-v中的虚拟机(笔者使用ubuntu版本为bionic)中安装xrdp   2.1 获取安装脚本     $ git clone https://github.com/jterry75/xrdp-init.git ~/xrdp-init   2.2 安装xrdp     $ cd ~/xrd...

Linux下C++编程环境搭建

  有更简单的方法:在装机器的时候选择  开发工作站系统  development workstation 工作站。免去安装java jdk ,eclipse ,g++,ssh等等各种工具的麻烦。  需要注意的是通过虚拟机安装的时候,要先创建空虚拟机,再从虚拟光驱安装,不要直接选择操作系统类型,不然会默认给安装最简化版的。光中文的设置,和输入法安装 就能让...

CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)

摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。 NAT的网络结构图: Bridge的网络结构见图: 一、Bridge方式 问题 客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安...

使用 PowerShell 将数据磁盘附加到 Windows VM

本文介绍如何使用 PowerShell 将新磁盘和现有磁盘附加到 Windows 虚拟机。 在开始之前,请查看以下提示: 虚拟机的大小决定了可以附加多少个磁盘。 有关详细信息,请参阅虚拟机大小。 若要使用高级存储,需要支持高级存储的 VM 大小,如 DS 系列或 GS 系列虚拟机。 有关详细信息,请参阅高级存储:适用于 Azure 虚拟机工作负荷的高性能...

KVM宿主机上虚拟机动态添加新磁盘

  (1)KVM宿主机查看运行的虚拟机        $ virsh list --all     (2)将qcow2的磁盘移动到/var/lib/libvirt/images/,比如为centos.qcow2     (3)进入/etc/libvirt/qemu/目录查看centos7.5虚拟机的xml文件     查看disk配置信息     (4)在...

[zz]kvm环境快照(snapshot)的使用方法

实例一 使用qemu-img命令使用快照 kvm环境下qcow2的镜像支持快照1 确认镜像的格式[root@nc1 boss]# qemu-img info test.qcow2 image: test.qcow2file format: qcow2virtual size: 10G (10737418240 bytes)disk size: 1.6Gcl...