相关推荐
-
对象创建(ObCreateObject)和对象删除(ObDereferenceObject、ObpRemoveObjectRoutine)
转载来源:https://blog.csdn.net/wzsy/article/details/6188554为对象分配内存看完了, 这次我们看一个比较高层的函数。 ObCreateObject, 这是内核的导出函数, 所有模块都可以使用(虽然它没有被文档化…) 它的作用是创建指定类型(OBJECT_TYPE)的对象示例。(注意ObAllocateObject只是分配了空间, 这里可以看到后续的操作) 这个函数的参数还真多啊。微软函数的参数一直都和火车一样。我们只能淡定。。。 NTSTATUS ObCrea
-
驱动杂记1:对驱动对象,设备对象,设备栈的理解
Windows内核采用的是面向对象的编程方式,但使用的确是C语言。Windows内核认为许多东西都是“对象”, 比如一个驱动一个文件一个设备,“对象”相当于一个基类。 一个驱动对象代表了一个驱动程序,或者说一个内核模块。驱动对象结构如下: typedef struct _DRIVER_OBJECT{ //结构的类型和大小 CSHORT Type; CSHORT Size; ..
-
Do All In One EXE File Under Win32
文章提交:icelord (icelord_at_sohu.com)希望题目没有语法错误。 Exe可执行,可以使用系统提供的各种服务,do all in one exe看起来是句废话。仅作技术研究,各位不要为几个文字争论。很早就看过高手写过的文章,>、>,今天我也来班门弄斧一把。做后门、木马,现在的技术不知道是什么样的,但是个人认为将他们做到内核之中,将更有威力。当然,这也是把双刃剑。见过一
-
Window XP驱动开发(二十二) 驱动程序的同步处理
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖! 参考书籍:> 1、中断请求级 在Windows的时候,设计者将中断请求分别划分为软件中断和硬件中断,并将这些中断都映射成不同级别的中断请求级(IRQL)。 同步处理机制很大程序上依赖于中断请求级,本节对中断请求级做介绍。 1、1 中断请求(IRQ)与可编程中断控制器(P
-
gloomy的《内存与进程管理器》
来源:https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=58182内存与进程管理器========================== But I fear tomorrow Ill be crying, Y
-
漫谈兼容内核之十八:Windows的LPC机制
LPC是“本地过程调用(Local Procedure Call)”的缩写。所谓“本地过程调用”是与“远程过程调用”即RPC相对而言的。其实RPC是广义的,RPC可以发生在不同的主机之间,也可以发生在同一台主机上,发生在同一台主机上就是LPC。所以在Unix语境下就没有LPC这一说,即使发生在同一台主机上也称为RPC。在历史上,RPC是“开放软件基金会(OSF)”设计和提出的一种用以实现“Un
-
进程创建过程分析NtCreateProcess-NtCreateProcessEx-PspCreateProcess
转自 http://www.blogfshare.com/createprocess-analyse.html 进程创建过程分析NtCreateProcess-NtCreateProcessEx-PspCreateProcess AloneMonkey 2014年7月26日 0 在内核中,windows创建一个进程的过程是从NtCreateProce
-
一。对象管理第一次初始化(ObInitSystem) + 类型对象的创建(ObCreateObjectType)
一。对象管理第一次初始化(ObInitSystem) + 类型对象的创建(ObCreateObjectType)
-
第四章 键盘的过滤(1)
4.1.1预备知识 并不是所有设备都可以通过绑定设备的方法进行过滤,其中硬盘就是一个例子,即使使用了IoAttachDevice,结果还是截获不到任何IRP. 符号链接是对象的一个别名. PDO是物理设备的简称,是设备栈最下面的那个设备对象. nt!ObpCreateHandel.这是WinDbg中使用的表示方法,!号前的内容表示模块名,
-
IoCreateFile vs IoCreateFile
感觉IoCreateFile应该算是系统调用,它会调用ObCreateObject函数。 IoCreateFile和IoCreateDevice都会调用ObCreateObject函数。 在中IoCreateFile中, Status = ObCreateObject(FileHandle, DesiredAc...
-
驱动对象、设备对象、请求对象数据结构
我们在内核程序中生成一个DO,而一个内核程序是用一个驱动对象表示的,因此,一个设备对象总是属于一个驱动对象。但一个驱动对象可以有多个设备对象,每个设备对象都会有一个指针指向下一个设备对象,因此就形成一个设备链。驱动程序需要在DriverEntry中初始化。每个驱动程序都会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载时被内核中的对象管理程序所创建的。驱动对象用DRIVER_OBJECT数据结构表示,它作为驱动的一个实例被内核中的I/O管理器负责加载,并且内核对一个驱动只加载一个实例。
-
windbg 查看设备信息
1. 相关命令 !devobj 查看设备对象信息 !drvobj 查看驱动对象信息 !devstack 查看设备栈 2. 系统设备树 !devnode 0 1 kd> !devnode 0 1 Dumping IopRootDeviceNode (= 0x865b1ee8) DevNode 0x865b1ee8 for PDO 0x865b1020 InstancePath i
-
驱动对象、设备对象、设备栈----驱动程序基础概念
简要说明 1. 向内存中载入一个驱动程序文件,就会有一个驱动对象(DRIVER_OBJECT)产生 2. 以驱动 i8042prt 为例简要说明过程(在这里我先做个说明,对于同时插有 ps/2 键盘和 ps/2 鼠标的计算机上, i8042prt 会创建两个设备对象,一个用于键盘,一个用于鼠标。i8042prt 是完成 ps/2 键盘驱动主要功能的驱动程
-
在EXE中创建、加载内核驱动
其实这个想法来自一个程序。当时想试验一下arp攻击,还以为win32下有相关的系统调用,google了一把,不,baidu了一把,google看 不懂,说win32下发包IpPacket到可以,Arp只能用IpHlpApi提供的SendARP()函数发送(可能孤陋寡闻),而且不能手动构造 arp包,而且SP2下发送TCP SYN是不允许的。晕。借助工具的话就要使用WinPcap,或者自己写驱动。
-
学习windows驱动(设备对象设备栈)
IO相关的操作是围绕设备对象进行的。设备对象分下几类:1、功能设备对象(FDO): 功能驱动为设备创建一个FDO,在设备栈里它位于物理设备(PDO)的上层。2、物理设备对象(PDO): 总线驱动创建PDO,逻辑上代表物理设备本身,功能设备对象(FDO)代表系统对这个PDO做的处理。FDO为什么会被总线驱动创建?是因为FDO代表的物理设备连接到此总线设备上,总线驱动起了承担总线设备的功能驱动作用。3.
-
驱动对象和设备对象
----------------以下内容摘自《寒江独钓》------------------- 1、驱动对象: 一个驱动对象代表了一个驱动程序。或者说一个内核模块。驱动对象的结构如下(这个结构的定义取自 WDK中的 wdm.h)。下面有一些域用省略号代替。 typedef struct _DRIVER_OBJECT { // 结构的类型和大小。 CSHORT T
-
Windows内核学习笔记(一)--浅谈驱动对象、设备对象与请求
最近在学习Windows内核编程,同时也接触到了一些驱动的概念,其中有一些概念让人比较容易混淆,所以就写了这篇文章发表一下自己的看法: 首先,谈谈驱动对象(DRIVER_OBJECT),可以说驱动对象代表的是一个驱动程序(或者叫内核模块)。在写内核程序时,必须要填写这样一种结构,来告诉Windows程序提供的功能。内核程序并不生成进程,它们有系统的System进程加载,可
-
USB开发—自上而下(一)
一直都有写技术文章的冲动,无奈自己才疏学浅,文笔太烂,提笔又不知道写什么好,今天终于下定决定,迈出行动的第一步,由于是新手,写的不好不要见怪。 在此之前,假定读者已经准备好一个具有USB通讯的开发板,开发板USB驱动已经写好,功能如下: 1, USB采用Bulk传输 2, 端口2作为输入端口 3, 端口3作为输出端口 4, 设备VID=0x1234,PID=0x5678 写到这