上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 40 下一页
  2012年6月20日
摘要: http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/21/1941225.html 我的上一篇文章已经阐述了“32位程序和64位程序在64位平台上读\写注册表的区别”,那么接下来将要回答上篇所留下来的一个问题:32位程序如何访问64位系统注册表(即:64位程序所访问的注册表位置)。 我们已经知道: ①:本机模式 64 位程序运行在纯模式下,并且访问键和存储在以下注册表子键中的值:HKEY_LOCAL_MACHINE\Software ②:32 位程序运行在 WOW64 模式下,并且访问键和值存储在以下注册表子项中:HK... 阅读全文
posted @ 2012-06-20 09:31 spinsoft 阅读(386) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/20/1940371.html用C#实现注册表的读\写是一件很容易的事情,在此不做详细的讲解。 用C#操作注册表主要用到的两个函数为(已经渗透到下面的实例程序中,注:要引入Microsoft.Win32命名空间): 1:读取键值-->Registry.LocalMachine.OpenSubKey(“..Key的路径...”, true),这里的第2个bool类型的参数含义为:标志打开的键值是否可以更改(即:是否可以用SetValue()给键赋值),然后调用GetVal... 阅读全文
posted @ 2012-06-20 09:30 spinsoft 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 每个USB设备有一个或多个配置来控制其行为;每个配置中都含有一个或多个接口;设备的接口具有一个或多个端点,每个USB设备在主机看来就是一些端点的结合,提取一个端点的地址、缓冲区长度、数据传输方向、类别等信息,就把一个端点封装成一个管道,利用这个管道句柄就可以实现主机与一个内存缓冲区和设备多个端点之间的数据传输。USB通信模型,它表明了端点和管道所扮演的角色。整个模型分为3级结构:在最低一级,USB电缆把主控制器与设备的总线接口连接起来;在第二级,一个控制管道把系统软件与逻辑设备连接起来;在第三级,一捆数据管道把客户软件与一组接口连接起来,这些接口组成设备的功能.Descriptor是描述符,并 阅读全文
posted @ 2012-06-20 08:42 spinsoft 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 1)当硬件连接到PC或从PC移除时,在硬件上会有信号跳变,BUS Driver会检测到器件的插入和移除,比如DVI的hotplug,再比如USB1.1的1.5K上拉。BUS Driver将调用IOInvalidateDevcieRelations,PNP Manager将知道BUS上的Device关系有所改变。2)为了获得新的Device关系,PNP Manager将调用IRP_MN_QUERY_DEVICE_RELATIONS。BUS Driver将会回应其BUS关系(目录)。3)一旦得知Device之间的关系,PNP Manager就能容易地确定哪些器件没有被初始化。IRP_MN_QUER 阅读全文
posted @ 2012-06-20 08:41 spinsoft 阅读(880) 评论(0) 推荐(0) 编辑
摘要: kd> !drvobj \driver\i8042prtDriver object (822c9b08) is for:\Driver\i8042prtDriver Extension List: (id , addr)Device Object list:82238020 822c9328 ----------------------------------------------------------------kd> !devobj 82238020Device object (82238020) is for: \Driver\i8042prt DriverObject 阅读全文
posted @ 2012-06-20 08:40 spinsoft 阅读(654) 评论(0) 推荐(0) 编辑
摘要: IRP 是 I/O request packet 的缩写,即 I/O 请求包。驱动与驱动之间通过 IRP 进行通信。而使用驱动的应用层调用的 CreatFile,ReadFile,WriteFile,DeviceIoControl 等函数,说到底也是使用 IRP 和驱动进行通信。一个 IRP 由两部分组成。首先是头部或者叫包的固定部分,是一个 IRP 结构。紧跟在这个头部之后的是 I/O stack locations ,这是一个 IO_STACK_LOCATION 结构的数组,这个数组中元素的个数是根据情况而定的,由 IoAllocateIrp( IN CCHAR StackSize , I 阅读全文
posted @ 2012-06-20 08:40 spinsoft 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 1、三种类型的WDM驱动程序 总线驱动程序(bus driver) 功能驱动程序(function driver) 过滤驱动程序(filter driver)2、其他分类方法 类驱动程序(class driver) 端口驱动程序(port driver) 小端口驱动程序(miniort driver)3、驱动程序对象(DRIVER_OBJECT)主要成员 DeviceObject: 指向一个设备对相链表,每个设备对象代表一个设备。 DriverExtension: 一个结构体, 该结构只有AddDevice成员可以直接访问。 DriverStartIo: 指向驱动程序中处理I/O请求的函数。 阅读全文
posted @ 2012-06-20 08:39 spinsoft 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 【51CTO.com 专家特稿】 诚信网安--小麒麟一.驱动编写随着对windows系统的深入研究,越来越多的内核方面的知识被挖掘出来了,今天我们讨论下如何写一个简单的驱动,并使用现在比较新的windbg调试器进行调试。首先写驱动要对驱动有一个比较全面的认识。一个简单的驱动一般有以下几个部分组成:1,一个入口点(DriverEntry):用于创建设备对象及符号连接,以及其它初使化操作,如分配池内存等.2,一个出口(DriverUnload):删除符号连接与设备对象,并释放已经分配的各种资源,如池内存等3,几个派遣例程:用于响应Ring3程序的请求及其它驱动事件,并做相关处理。我用一个挂钩SSD 阅读全文
posted @ 2012-06-20 08:38 spinsoft 阅读(1824) 评论(0) 推荐(0) 编辑
摘要: DDK 的一些笔记,比较乱, 以后有时间再整理吧; typedef struct _RWCONTEXT //读写的线程环境; { struct _URB urb; //共享的urb; ULONG_PTR va; //mdl的开始地址; ULONG length; //要传输的长度; PMDL mdl; //指向当前的mdl; ULONG numxfer; //已经传送的字节数; } RWCONTEXT, *PRWCONTEXT; //----------------------- typedef struct _DE... 阅读全文
posted @ 2012-06-20 08:37 spinsoft 阅读(1430) 评论(0) 推荐(0) 编辑
摘要: DDK 的一些笔记,比较乱, 以后有时间再整理吧; typedef struct _RWCONTEXT //读写的线程环境; { struct _URB urb; //共享的urb; ULONG_PTR va; //mdl的开始地址; ULONG length; //要传输的长度; PMDL mdl; //指向当前的mdl; ULONG numxfer; //已经传送的字节数; } RWCONTEXT, *PRWCONTEXT; //----------------------- typedef struct _DE... 阅读全文
posted @ 2012-06-20 08:37 spinsoft 阅读(595) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 40 下一页