惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

博客园 - wolflion

《UNIX-Shell编程24学时教程》读书笔记Chap3,4 文件,目录操作 《UNIX-Shell编程24学时教程》读书笔记Chap1,2 Shell基础,脚本基础 《UNIX-Shell编程24学时教程》读书笔记chap7 变量 《软件调试的艺术》读书笔记 ubuntu环境准备 ftp的实现 icmp的程序(ping的实现) cp命令 who命令 苦逼IT才能看懂的笑话 debug和release版区别 i5处理器的台式机[百度知道] 关于轮胎尺寸问题 windows 系统编程 Chap7 线程和调度 EVRYTHNG.H Windows系统编程chap6 Windows系统编程 chap5 booklist 转 windows code
常见内核数据结构.doc
wolflion · 2013-05-22 · via 博客园 - wolflion
  1. 驱动框架常见数据结构
  2. 驱动对象结构 (DRIVER_OBJECT)

每个驱动对象代表一个已加载的内核驱动程序,指向驱动对象结构的指针常常作为DriverEntry, AddDevice, Unload等函数的参数。

驱动对象结构是半透明的(即结构中只有部分域是公开的),其中公开的域包括DeviceObject[指向由此驱动创建 的设备对象], DriverExtension[指向快速i/o函数入口], HardwareDatabase, FastIoDispatch, DriverInit[指向驱动入口点地址(DriverEntry)], DriverStartIo, DriverUnload[指向驱动卸载程序]以及MajorFunction[是一张函数分发表,数组的索引值与IRP_MJ_Xxx相对应].

kd> dt nt!_driver_object

http://blog.csdn.net/denglin_123/article/details/6501738

  1. 设备对象结构  (DEVICE_OBJECT)

系统使用设备对象结构来描述一个设备对象。

DriverObject域指向创建此设备对象的驱动程序对象; NextDevice域指向同一个驱动程序创建的下一个设备对象;AttachedDevice域指向绑定到此设备对象上的设备对象; Flags域指定了该设备对象的标记(缓冲读写方式还是直接读写方式);Vpb域指向与此设备对象相关的卷参数块;DeviceExtension域指向设备扩展,设备扩展中的内容由程序设计者自定义,往往用来记录与设备相关的一些信息。

kd> dt nt!_device_object

kd> dt nt!_unicode_string

http://blog.csdn.net/denglin_123/article/details/6501740

  1. 进程与线程数据结构

a. 执行体进程块 (EPROCESS)

执行体进程块是一个不透明的数据结构,用来描述一个进程对象。驱动程序可以调用PsGetCurrentProcess函数获取指向当前进程的执行体进程块指针。

kd> dt nt!_EPROCESS

  1. 内核进程块 (KPROCESS)
  2. 执行体线程块 (ETHREAD)
  3. 内核线程块 (K THREAD)
  1. 存储系统数据结构
  2. 卷参数块(VPB)
  3. 文件对象(File_Object)
  4. SCSI请求块(SPB)
  1. 网络数据结构
  2. 其他一些常见的数据结构
  3. 对象结构

任何一个对象都包括固定的对象头和不固定的对象体两部分,对象体的结构由对象类型决定。【类型为文件(FILE)的对象体结构为FILE_OBJECT,而对象头的数据结构是固定的(注意随着系统的不同,对象头的结构也会发生变化)】

kd> dt ntkrpamp !_OBJECT_HEADER

  1. 链表结构

Windows内核使用LIST_ENTRY结构组织双向链表

kd> dt nt!_LIST_ENTRY

  1. APC和DPC
  2. PE文件相关结构
  3. 基于分发器对象的同步对象结构
  4. 内存区对象(SECTION_OBJECT)
  1. 其他