【第2篇】hello world一个简单的驱动
本帖最后由 lx_Zz 于 2016-8-11 14:03 编辑这一篇带大家写一个hello world走进内核编程的大门、
首先有一个概念、32位系统和64位系统需要对应的32位驱动和64位驱动才能加载、就是说你的系统是多少位的驱动就要编译成多少位的、
由于是第一个例子、尽量讲的详细点、把每个细节都考虑到、希望不要嫌啰嗦、
其实很简单、上一篇讲的那些工具、这一篇都先不用、让大家感受一下hello world的魅力、
在虚拟机里安装的32位系统下、
写代码
1、在桌面或者其他地方新建一个文件夹、命名为hello world、
2、在文件夹里新建一个记事本、命名为hello.c、
3、在计算机里搜索makefile文件、C盘或者安装wdk7.1的文件夹里有、只要是名称为makefile的文件就行、因为系统里的makefile文件内容几乎都是一样的、注意是没有后缀名的、
4、将makefile文件拷贝到hello world文件夹下、
5、在hello world文件夹下新建一个记事本、打开记事本写入下面的代码、后面再讲解代码的含义、
TARGETNAME = hello
TARGETTYPE = DRIVER
SOURCES = hello.c
6、保存记事本里的内容、并将记事本名称改为sources、注意没有后缀名、
7、用记事本打开hello.c、写入下面代码、
#include <ntddk.h>
VOID DriverUnload(PDRIVER_OBJECT driver) {
DbgPrint("our driver is unloading...");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath) {
DbgPrint("hello world!");
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
8、保存之后在开始菜单找到Windows driver kits/WDK 7600.16385.1/build environments/windows 7、选择x86 checked build environment、然后出现一个命令行窗口、右键hello world文件夹查看属性、复制地址、然后cd c:、然后cd 粘贴地址、然后cd hello word、然后build、
9、这时在hello world文件夹下有一个hello.sys就是我们生成的驱动程序了、
10、打开驱动加载器InstDrv、将hello.sys文件拖到加载器界面上、
11、打开DbgView、工具栏点开capture、将capture kernel选上、
12、驱动加载器、点击安装、启动、停止、卸载、就能看打DbgView上的调试消息显示了、
好了、因为没图的原因、所以如果遇到什么问题、在帖子下留言、我给更新完善这个内容、
下一篇来分析一下代码、和这个操作过程的原理、再接着讲64位系统下如何加载驱动、 谢谢楼主热心分享,希望楼主能尽是多出这类教程,谢谢! 驱动开发是梦幻般的存在啊!{:5_101:}@小甲鱼 @无符号整形 ~风介~ 发表于 2016-8-12 21:42
驱动开发是梦幻般的存在啊!@小甲鱼 @无符号整形
{:10_257:}以前想学但wdk安装不了就…… 无符号整形 发表于 2016-8-12 22:00
以前想学但wdk安装不了就……
光配置环境就搞死一大堆了人了。。。。 ~风介~ 发表于 2016-8-12 23:17
光配置环境就搞死一大堆了人了。。。。
对。。。{:10_304:}我打算先学完逆向再学驱动 无符号整形 发表于 2016-8-12 23:19
对。。。我打算先学完逆向再学驱动
好好学,看好你哦~{:10_256:} 网上有一个叫EasySYS的软件,可以很方便的开发驱动,推荐大家使用。
不过用这个软件创建好之后会有一堆代码,大家可以选择性地删除代码。
页:
[1]