
内核驱动
文章平均质量分 65
syf442
这个作者很懒,什么都没留下…
展开
-
EasySYS 一键建立VC+DDK的驱动开发环境
EasySYS 一键建立VC+DDK的驱动开发环境 点击进入下载页面(包括源代码以及可执行文件):http://sourceforge.net/project/showfiles.php?group_id=183220预览图片:备用下载地址:http://mykof.com/tools/EasySYS.zip名称: EasySYS 版本: 0.3.1作者: Lei Bian转载 2009-07-16 10:24:00 · 3803 阅读 · 0 评论 -
Hello World之驱动版
导读: 我们学习程序设计,都是从“Hello World”开始的,驱动程序也不例外,今天我就写一个驱动版的“Hello World”来热热身,目的希望大家能对驱动程序的基本框架有所了解。 驱动程序分为2类,一个是Kernel模式驱动,另一个是Windows模式驱动,2种模式本质是相同,但细节不同,本文介绍的是内核模式驱动和驱动程序的安装、使用。 驱动程序同普通的EXE,DLL一样,都属转载 2009-07-16 13:15:00 · 414 阅读 · 0 评论 -
我的驱动学习笔记(一)
驱动的建立:1. 可以在VC++下建立一个C源文件(*.c 文件),其中包括驱动入口函数DriverEntry(),当驱动程序第一次加载的时候I/O管理器调用这个例程, 实例: #include "ntddk.h"NTSTATUS DriverEntry ( IN PDRIVER_OBJECT theDriverObject, IN PU原创 2009-07-16 13:59:00 · 836 阅读 · 0 评论 -
编写驱动拦截NT的API实现隐藏文件目录
原作者姓名 desert studio介绍这几天看了lornwolf兄写的拦截ZwQuerySystemInformation来隐藏进程的文章,还有sinister的“隐藏 任意进程 目录 文件 注册表 端口“这篇文章。发现sinister的根本编译不了,于是我梢加修改了一下,其他的如隐藏注册表键值,拦截删除注册表,拦截删除文件等等都可以类似实现!读者评分 4 评分次数 2 正文目前NT下有很多种转载 2009-07-15 08:54:00 · 176 阅读 · 0 评论 -
驱动程序 ISR DPC 和 APC
当驱动程序处理IRP的时候,它可能立刻完成,也可能在中断里才能完成,比如说,往硬件设备发出一个请求(通常可以是写I/O port),当设备完成操作的时候会触发一个中断,然后在中断处理函数里得到操作结果。Windows有两类中断,硬件设备的中断和软中断,分成若干个不同的优先级(IRQL)。软中断主要有两种:DPC(Delayed Procedure Call)和APC(Asynchron转载 2009-07-15 14:33:00 · 1141 阅读 · 0 评论 -
DDK与DriverStudio 3.2安装的血泪史
DDK与DriverStudio 3.2安装的血泪史2009-04-18 14:58安装环境:XP Profesional(SP3),vc 6.0 English Enterprise,XPDDK,DriverStudio 3.2由于实验室需要,还有就是自己刚开始的一点兴趣,最近几天一直在安装DS3.2。说到这儿好像就有点底气不足了,呵..,因为到我写这篇文章的时候转载 2009-07-15 16:24:00 · 3307 阅读 · 2 评论 -
Windows NT 设备驱动程序开发基础
一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ring0 层的代码可转载 2009-07-16 10:09:00 · 844 阅读 · 0 评论 -
IRP
irp是Windows内核中的一种非常重要的数据结构。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。irp相当于ring3下的消息,应用程序对驱动程序进行操作的时候会发出相应的消息,驱动程序根据这些消息做出相应的操作。这些操作通过我们自己编写的派遣函数来决定执行什么样的操作。转载 2009-07-14 16:22:00 · 524 阅读 · 0 评论 -
windows驱动学习之hello world
windows驱动学习之hello world2007年11月24日从今天开始本人要记录下学习驱动的过程。主要目的是给自己以后提供复习的资料。学习驱动的目的原因很多:一是没有办法,人家让学你就得学,不学就没有工作了,所以硬着头皮也要学。在此基础上给自己一个合理的安慰,那就是学习驱动的人不多,听说学好了也能赚很多钱,所以也给自己学习的动力。 开始了。。。。。。。。。。。。转载 2009-07-16 13:17:00 · 1024 阅读 · 0 评论 -
彻底弄明白IRP
微软的东东,多数是把聪明人搞晕,把晕的人搞残,把残的人搞死! 一直以来,想弄明白驱动和IRP到底是怎么回事,在驱网上也查了无数的资料,到头来,手脚抽筋也没弄明白。 从网上查到一段说明,可以说是迄今最后的解释,在家里看了N天,似同天书。引用:1. 子系统调用NT的IO系统服务打开命名文件。2. NT的IO管理器调用对象管理器,查询命名文件,并且帮助解决文件转载 2009-07-14 16:20:00 · 483 阅读 · 0 评论 -
驱动学习笔记–文件操作
驱动中文件的操作和在ring3下对文件的操作有所不同,ring3下直接输文件路径就可以对文件操作了,在驱动中应该先为文件初始化一个对象,然后对这个对象操作,下面来编写一个驱动实现创建一个文件并写入字符串“www.lingdux.com”。首先确定一下流程:1.定义一个操作对象OBJECT_ATTRIBUTES2.用InitializeObjectAttributes()函数初始化这转载 2009-07-14 16:24:00 · 409 阅读 · 0 评论 -
驱动学习笔记— Hello World !
编译环境用xp下VC6+DDK新建一个文件夹当作工程目录,路径是E:/lingdux/从别的工程copy过来两个文件,一个是makefile,它用来指定文件之间的依赖关系,确定项目中哪些文件时需要重新编译的,那些事已经编译过的。里面的内容不用改,直接默认就OK另一个是source,它用来保存一些配置信息,内容如下:TARGETNAME=lingdux 这句用来指定目标程序存放转载 2009-07-16 11:43:00 · 543 阅读 · 0 评论 -
内核模式驱动程序的结构
内核模式驱动程序与传统的应用程序有非常大的不同,总的来说,驱动程序收集了被操作系统软件(通常是I/O管理器)调用的各种例程,只有当I/O管理器调用它们的时候它们才会执行。 I/O管理器可能在下列状态下调用驱动程序的例程: 1. 当驱动程序加载的时候。 2. 当驱动程序被卸载或者系统被关闭的时候。 3. 当设备被插入或者移除的时候。 4. 当用户程序发出I/O系统服务的调用的原创 2009-07-17 11:48:00 · 1234 阅读 · 0 评论 -
开发驱动程序的过程二
Unicode 字符串 所有的WIN2000操作系统的字符串是作为Unicode 字符串存储的。使用16 bits来记录每个字符,这样使它容易的转移应用程序和操作系统到世界上大多数的语言环境中。Unicode 字符串是工业标准,除非特别说明,任何驱动程序发送到win2000或者受到的字符串都是Unicode 字符串。在用户缓冲区和驱动程序之间的数据传输不是必须使用Unicode 字符串,对于W原创 2009-07-20 11:09:00 · 1151 阅读 · 0 评论 -
初始化与卸载例程
编写一个DriverEntry例程运行的上下文环境 再加载驱动程序的时候I/o管理器调用DriverEntry例程。DriverEntry例程运行的IRQL是PASSIVE_LEVEL,这意味着它有权访问分页的存储器资源。 DriverEntry例程收到一个指向它自己的驱动程序对象的指针,这个指针必须初始化。它也收到一个包含注册表中驱动程序的服务键的UNICODE_STRI原创 2009-07-20 15:11:00 · 804 阅读 · 0 评论 -
开发驱动程序的过程
驱动程序开发策略 7. 最后完成Start I/O例程,ISR和DPC例程。现在可以使用真实的数据和硬件进行测试。 应一个有用的提示: 当硬件的确切行为是不能肯定的时候,增加一个DeviceIoControl函数,这个例程直接访问设备的寄存器,这时可用一个简单的WIN32程序直接控制设备寄存器。记得在发布最后的驱动程序版本的时候删除这个功能。 使用驱动程序实例原创 2009-07-17 14:14:00 · 665 阅读 · 0 评论 -
Windows NT 设备驱动程序开发基础
我看到的最简单明了的驱动开发说明: Windows NT 设备驱动程序开发基础!(转载优快云) 关键字 设备驱动程序 一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低转载 2009-07-21 11:30:00 · 719 阅读 · 0 评论 -
error C2220: warning treated as error - no object file generated的处理方法
WDK/DDK中掉 error C2220: warning treated as error - no ‘object’ file generated2009-04-01 15:54网上搜索而来,保存其实就是关掉编译选项的问题…网上提得最多的就是修改 WDKPATH/i386.inc文件中的MSC_WARNING_LEVEL=$(MSC_WARNING转载 2009-07-21 15:27:00 · 7999 阅读 · 2 评论 -
WDM驱动程序设计
现在Windows98和Windows2000已经成了主流操作系统的主流,原先用来实现驱动程序的VxD技术随着Win95的淡出也慢慢地将退出历史舞台,在Windows98和Windows2000中设备驱动程序将根据Windows驱动程序模型(WDM)来设计。WDM通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和转载 2009-07-21 11:33:00 · 449 阅读 · 0 评论 -
WRK – windows操作系统源代码下载
从潘爱民的博客看到这东西的,潘爱民准备写一个windows内核方面的书,就提到了微软的WRK计划(Windows Research Kernel),这个计划是让高校师生以及亲密的合作商有一个机会能够了解和学习windows的内核代码,它的网站在这里:http://www.microsoft.com/resources/sharedsource/windowsacademic/researchk转载 2009-08-31 14:24:00 · 2442 阅读 · 0 评论 -
有关UNICODE、ANSI字符集和相关字符串操作的总结
对论坛中有关UNICODE、ANSI字符集和相关字符串操作的总结!先声明不是我的杰作。我这里只是总结了一部分,如果有错误请指出,同时欢迎大家参与进来! 常常使用传统C语言的程序员比较喜欢用如下的方法定义和使用字符串: char *str = { “my first string” }; // ansi字符串wchar_t *wstr = { L”m转载 2009-09-10 11:22:00 · 424 阅读 · 0 评论 -
ANSI字符,UNICODE,宽字符,窄字符,多字节字符集
Unicode :宽字节字符集 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。 调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。 2. 如何对DBCS(双字节字符集)字符串进行操作? 函数 描述转载 2009-09-10 13:33:00 · 907 阅读 · 0 评论 -
windows XP 驱动开发环境搭建
1.需要安装的软件:在Windows XP的基础上,安装顺序: 先装上VC++6.0,再装DDK2600(也就是DDK的XP版),最后装 Driver Studio 3.2。下载地址:XP系统的DDK: ftp://202.113.29.4/ISO/M$/WinDDK/winxp_ddk.rar Driver Studio: http://download2.77169转载 2009-07-10 14:04:00 · 2495 阅读 · 4 评论 -
Windows XP + VC 6.0 + WinXP_DDK + DriverStudio 3.2
相见: http://blog.youkuaiyun.com/syf442/archive/2009/07/10/4337719.aspx转载 2009-07-10 14:34:00 · 1110 阅读 · 0 评论 -
第一个驱动程序
文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://nokyo.blogbus.com/logs/33266907.html 驱动程序的开发,向来是令人感到有所畏惧的,可能很多人像我一样,看了很久却还是一头雾水,不得其门而入。我们今天就通过一个简单的程序来使读者学会初步的驱动程序开发。 在开发Windows驱动程序转载 2009-07-10 16:21:00 · 475 阅读 · 0 评论 -
SSDT 概述
SSDT 的全称是System Services DescriptorTable,系统服务描述符表。这个表就是一个把ring3(应用层)的Win32API和ring0(内核层)的内核API联系起来的角色。对于一个干净的SSDT表来说,它里边的表项应该都是指向ntoskrnl.exe的;当程序的处理流程进入ring0之后,系统会根据服务号(eax)在SSDT这个系统服务描述符表中查找对应转载 2009-09-08 11:20:00 · 717 阅读 · 0 评论 -
挂钩Windows API
===========================[ 挂钩Windows API ]================== SoBeIt Author: Holy_Father holy_father@phreaker.net>转载 2009-07-10 11:19:00 · 467 阅读 · 0 评论 -
微过滤器驱动开发指南
微过滤器驱动开发指南 0.译者序 对我来说,中文永远是最美,最简洁,最精确和最高雅的文字。 本文翻译仅仅用做交流学习。我不打算保留任何版权或者承担任何责任。不要引用到赢利出版物中给您带来版权官司。本文的翻译者是楚狂人,如果有任何问题,你可以通过邮箱MFC_Tan_Wen@163.com,或者是QQ16191935,或者是MSN walled_river@hotmail.co转载 2009-07-10 11:21:00 · 1662 阅读 · 0 评论 -
文件过滤驱动,如何动态透明加解密?
文件过滤驱动是微软公开支持进行文件加密的技术手段,在驱动的层次定义中,微软定义了杀毒、压缩、加密等各种功能层次,加密的定义如下: Load Order Group:FSFilter Encryption ,Altitude Range:140000-149999 由于文件过滤驱动处于驱动层面(不像API Hook处于应用层),可以控制系统的更多细节,和应用程序的关联度转载 2009-07-10 11:42:00 · 1492 阅读 · 0 评论 -
DriverStudio V3.2 简介
原文出处:http://soft.0zones.com/SoftView/SoftView_15828.htmlDriverStudio 3.2是迄今为止最完备的驱动开发工具套件,它所提供的工具覆盖了驱动开发的方方面面。DriverStudio套件中的所有工具都与Visual Studio IDE环境集成在一起。开发人员可以在Visual Studio .NET 2002和2003环境中编写并测试转载 2009-07-10 14:43:00 · 1366 阅读 · 0 评论 -
驱动开发学习笔记
1、三种类型的WDM驱动程序 总线驱动程序(bus driver) 功能驱动程序(function driver) 过滤驱动程序(filter driver)2、其他分类方法 类驱动程序(class driver) 端口驱动程序(port driver) 小端口驱动程序(miniort driver)3、驱动程序对象(DRIVER_OBJECT)主要成员 Dev转载 2009-07-10 15:38:00 · 650 阅读 · 0 评论 -
超简单的驱动
【导读】本文介绍了Windows下的内核级Rootkit的最基础性的东西,以及利用驱动程序将代码导入到内核的方法。虽然我们还没有涉及到真正的Rootkit,但这些内容是我们掌握Rootkit的必经之路,就像我们要建一座6层的楼房,却不能撇开基础和低层而直接盖第六层一样!更多的内容,会在后续的文章中陆续介绍。Rootkit是一种奇特的程序,它具有隐身功能:无论静止时(作为文件存在),还是活动时,转载 2009-07-10 15:54:00 · 541 阅读 · 0 评论 -
驱动程序开发入门(一)HelloWorld
看了好多天的书!特别到书店买了《Windows 2000/xp wdm 设备驱动开发》这本书,在这里我不想怎么评论它!对于高手来说,我觉得她一定不能满足,但是对于像我这样想入门的人来说,仿佛看了半天,还是不知道从何下手。什么原理、模型、分层等等讲不讲,讲!绝对应该讲!但是你得快点告诉我怎么先弄一个像“Hello Word!”的什么简单来不能再简单的完整的例子给我呀!到网上找阿找啊!那些高手啊!也不转载 2009-07-10 16:13:00 · 445 阅读 · 0 评论 -
Windows驱动程序入门
摘要:本文介绍了Windows下驱动程序的设计的必要性和基本方法,主要适合于驱动程序的初学者。一、驱动程序设计的必要性 在传统DOS系统下,每个应用程序都有权利读写硬件,读写I/O端口,控制系统中断,然而到了Windows系统中,为了保持良好的系统安全性,对应用程序的权限作出了限制,因为不适当的硬件读写会引发整个系统的崩溃。在Windows系统中,将整个程序设计为分层结构,其中,应用程序转载 2009-07-10 16:17:00 · 725 阅读 · 0 评论 -
最简单的驱动程序
一个最基本的驱动程序,算是入门用户的样例吧。当然要想测试的话,你的先安装好DDK开发环境。源代码如下:#include "ntddk.h"void OnUnload(IN PDRIVER_OBJECT DriverObject){ DbgPrint("OnUnload Called! /n");}NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDri转载 2009-07-14 16:35:00 · 465 阅读 · 0 评论 -
DriverStudio V3.2 驱动程序开发工具包的安装说明
1.软件的安装顺序:VC6.0 -> DDK_XP -> DriverStudio3.2 ,如果装错了,把DS3.2删除再重装就OK了.2.编译库文件: (1).启动VC6.0,进入菜单DriverStudio>>DDK Build Settings指向DDK安装位置; (2).进入菜单Open Workspace,打开位于DS安装目录的/DriverWorks/Source/vd转载 2009-07-15 16:18:00 · 864 阅读 · 0 评论 -
本地目录的只读控制(禁止写、删除、新建))
几句废话: 这是我在驱网发的第二篇文章,第一篇是关于利用过滤驱动将U盘设置为只读的。 这篇是利用文件系统过滤驱动将一个目录(本地硬盘)设置为只读,包括禁止修改 文件,禁止删除文件,禁止新建文件等。 我最终的目的是想实现 利用文件过滤驱动 将任意盘(包括移动,A等)设置为只读。因此我的路还很长,还需要各位的帮助。 正文: 0 准备工作: 由于是对文件、目录的拦截。首先要知道如何得到路径、文件名、转载 2009-09-16 14:10:00 · 1070 阅读 · 0 评论 -
Nt**、Zw**和Rtl** 开头的函数介绍
首先他们都是微软未公开的函数,之所以未公开主要是因为这些函数大部分功能太强大了,把他们公开会让一些别有用心的人利用。9x下的我不知道,NT(含2000/xp)下你可以参考《Windows NT Native API》,他们中的大部分函数几乎就从来没有变过。而几乎所有从Kenerl.dll中引出的Win32API,都是通过调用的Native API(NTDLL.DLL中导出)实现系统调用转载 2009-09-15 15:10:00 · 2058 阅读 · 0 评论 -
DDK与WDK
最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料。 1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。 2.DDK(Driver Developer Kit)和WD转载 2009-09-16 17:08:00 · 4663 阅读 · 2 评论 -
驱动基本概念
IRQ-介绍 IRQ全称为Interrupt Request,即是“中断请求”的意思。IRQ的作用就是在我们所用的电脑中,执行硬件中断请求的动作,用来停止其相关硬件的工作状态,比如我们在打印一份图片,在打印结束时就需要由系统对打印机提出相应的中断请求,来以此结束这个打印的操作。在每台电脑的系统中,是由一个中断控制器8259或是8259A的芯片(现在此芯片大都集成到其它的芯片内原创 2009-09-17 10:14:00 · 875 阅读 · 0 评论