自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 遍历进程

_eprocess成员ActiveProcessLinks _list_entry 类型,指向前、后eprocess.ActiveProcessLinks成员,而非eprocess开头。通过它,可以遍历系统所有进程。

2011-05-30 20:53:00 406

原创 遍历驱动

_driver_object成员DriverSection指向_ldr_data_table_entry,_ldr_data_table_entry储存了某一驱动的基址、文件名等信息。_ldr_data_table_entry 成员 InLoadOrderLinks 为一 _list_entry结构,储存了前、后_ldr_data_table_entry的地址,_ldr_data_table_entry通过此成员形成一双向链表。而系统所有已装入驱动都在这链表中有一结点。故遍历之,即可达到目的。

2011-05-30 20:50:00 734

原创 _EPROCESS 一些成员说明

<br />ActiveProcessLinks_list_entry 类型,指向前、后eprocess.ActiveProcessLinks成员,而非eprocess开头。通过它,可以遍历系统所有进程。<br /> 

2011-05-30 20:35:00 458

原创 驱动程序栈、设备栈、IRP

    首先建交驱动分层的概念。一个物理设备的驱动(不限于物理设备),通常由几个驱动程序分层的共同完成。每层一个设备对象,他们联系在一起,组成一个设备栈。当然,每层的设备对应一个驱动程序,也组成一个驱动程序栈。二者是平行联系的关系。一个设备栈上的设备对象,从上自下,联系在一起。从下自上,也联系在一起。     设备栈上的设备对象,从上自下,通过 DEVICE_OBJECT 的 DEVOBJ_EXTENSION 的 +18 struct _DEVICE_OBJECT .AttachedTo 联系在一起。  

2011-05-28 17:25:00 1764

原创 driver_object结构几个域的说明

<br />首先明确映像、文件两个概念的差别。<br /> <br />DriverStart驱动映像的基址('mz'开头)<br />DriverSize驱动映像的大小<br /> <br />有了这两个东西就可计算得一个驱动在内存中的二进制实体。<br /> <br />DriverSection指向_ldr_data_table_entry(此结构另论)<br /> <br />DriverInit驱动映像的入口地址(DriverEntry)

2011-05-28 09:26:00 436

原创 DriverObject与DeviceObject关系

二者是一个不太严格的双向链表关系:1、DriverObject--------------->DeviceObject1------------------>DeviceObject2-->....DeviceObjectN-->NULL           (DriverObject.DeviceObject域)        (DeviceObject.NextDevice域)2、DeviceObject----------->DriverObject                (DeviceObj

2011-05-26 20:53:00 1170

原创 vs2005编译连接

<br />1、可以提定整个项目的"编译为 C++ 代码(/TP)",也可以指定单个源文件的"编译为 C++ 代码(/TP)"属性,不过好的习惯是一般不必修改此属性,保持默认即可;<br />2、__cplusplus是C++ 编译器的一个内置宏,当编译为 C++ 代码(/TP)自动生效,故不必在代码中手工定义;<br />3、利用“从生成中排除”可很好的解决C、C++混合编程问题;<br />4、链接错误<br />1>xxx.obj : error LNK2019: 无法解析的外部符号。显然是某个符号的

2011-05-26 20:26:00 638

原创 伪句柄分析

>6.8节中提到了一个线程“伪句柄“概念,同时指出线程的伪句柄是当前线程的句柄,也就是调用函数的线程的句柄。  感觉单从概念上还不能充分的理解,必须深入分析。Windows就是隐藏了太多的东西,你越不分析透,就越不能理解,内心就越不踏实。  显然,GetCurrentThread()返回的是一个伪句柄,那就从它开始。  通过实验,发现不管如何调用,GetCurrentThread()返回的伪句柄都是一个固定值0xfffffffe(-2),这显然不是一个有效句柄(地址)。其实,GetCurrentThread

2011-05-17 17:09:00 858 1

原创 近期任务

读袁峰《winddows图形编程》

2009-10-12 10:33:00 306

原创 一定要弄懂GDI,深入之,不满足API层面。

就从最常用的TextOut()开始每天总想花多点时间学习windows 系统下的原理,但由于MIS开发杂务缠身,只能断断续续,但一定要坚持。

2008-12-09 15:48:00 411

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除