内核中有个PLIST_ENTRY CmpHiveListHead;
CmpHiveListHead = &CMHIVE.HiveList;

CMHIVE结构如下:
kd> dt _CMHIVE
nt!_CMHIVE
   +0x000 Hive             : _HHIVE
   +0x210 FileHandles      : [3] Ptr32 Void
   +0x21c NotifyList       : _LIST_ENTRY
   +0x224 HiveList         : _LIST_ENTRY
   +0x22c HiveLock         : Ptr32 _FAST_MUTEX
   +0x230 ViewLock         : Ptr32 _FAST_MUTEX
   +0x234 LRUViewListHead  : _LIST_ENTRY
   +0x23c PinViewListHead  : _LIST_ENTRY
   +0x244 FileObject       : Ptr32 _FILE_OBJECT
   +0x248 FileFullPath     : _UNICODE_STRING
   +0x250 FileUserName     : _UNICODE_STRING
   +0x258 MappedViews      : Uint2B
   +0x25a PinnedViews      : Uint2B
   +0x25c UseCount         : Uint4B
   +0x260 SecurityCount    : Uint4B
   +0x264 SecurityCacheSize : Uint4B
   +0x268 SecurityHitHint  : Int4B
   +0x26c SecurityCache    : Ptr32 _CM_KEY_SECURITY_CACHE_ENTRY
   +0x270 SecurityHash     : [64] _LIST_ENTRY
   +0x470 UnloadEvent      : Ptr32 _KEVENT
   +0x474 RootKcb          : Ptr32 _CM_KEY_CONTROL_BLOCK
   +0x478 Frozen           : UChar
   +0x47c UnloadWorkItem   : Ptr32 _WORK_QUEUE_ITEM
   +0x480 GrowOnlyMode     : UChar
   +0x484 GrowOffset       : Uint4B
   +0x488 KcbConvertListHead : _LIST_ENTRY
   +0x490 KnodeConvertListHead : _LIST_ENTRY
   +0x498 CellRemapArray   : Ptr32 _CM_CELL_REMAP_BLOCK

遍历CmpHiveListHead就能得到所有的HHIVE的地址,
HHIVE结构如下:
kd> dt _HHIVE
nt!_HHIVE
   +0x000 Signature        : Uint4B
   +0x004 GetCellRoutine   : Ptr32     _CELL_DATA* 
   +0x008 ReleaseCellRoutine : Ptr32     void 
   +0x00c Allocate         : Ptr32     void* 
   +0x010 Free             : Ptr32     void 
   +0x014 FileSetSize      : Ptr32     unsigned char 
   +0x018 FileWrite        : Ptr32     unsigned char 
   +0x01c FileRead         : Ptr32     unsigned char 
   +0x020 FileFlush        : Ptr32     unsigned char 
   +0x024 BaseBlock        : Ptr32 _HBASE_BLOCK
   +0x028 DirtyVector      : _RTL_BITMAP
   +0x030 DirtyCount       : Uint4B
   +0x034 DirtyAlloc       : Uint4B
   +0x038 RealWrites       : UChar
   +0x03c Cluster          : Uint4B
   +0x040 Flat             : UChar
   +0x041 ReadOnly         : UChar
   +0x042 Log              : UChar
   +0x044 HiveFlags        : Uint4B
   +0x048 LogSize          : Uint4B
   +0x04c RefreshCount     : Uint4B
   +0x050 StorageTypeCount : Uint4B
   +0x054 Version          : Uint4B
   +0x058 Storage          : [2] _DUAL

这里主要在 CmpHiveListHead 里的地址。实际上是 CMHIVE 结构的 hivelist地址。所有-0x30c(win7 32为是这样) 就是CMHIVE地址。

CallBack对象在

\\CallBack目录里

怎么遍历 \\CallBack目录  请参考    windows遍历驱动

POBJECT_DIRECTORY_ENTRY 结构里  Object 指向 CALLBACK_OBJECT 对象

jpg 改 rar

遍历CallBack对象 和 HHIVE对象的更多相关文章

  1. struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组

    在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...

  2. Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...

  3. Android(java)学习笔记44:Map集合的遍历之键值对对象找键和值

    1. Map集合的遍历之 键值对对象找 键和值: package cn.itcast_01; import java.util.HashMap; import java.util.Map; impor ...

  4. winform练习-通过遍历Control容器中的对象统一委托事件-楼盘选择器

    1.窗体布局如下,一个label标签内容如下,一个btnSave按钮,用于保存,其他九个按钮用于选择楼盘. 2. 按钮存于Control容器中,编写方法遍历容器中的button,通过条件过滤掉不是bu ...

  5. jQuery对象和DOM对象的互相转换【 转】

    jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的 ...

  6. jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)

    jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...

  7. jQuery对象转换为DOM对象(转)

    jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的 ...

  8. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  9. jQuery介绍 DOM对象和jQuery对象的转换与区别

    jQuery介绍 DOM对象和jQuery对象的转换与区别 jQuery介绍      jQuery: http://jquery.com/      write less, do more.   j ...

随机推荐

  1. ios 引入第三方库 运行时找不到函数实现

    今天引入webtrends 这个库,结果一直运行时找不到函数,纳闷了一下午! 后来发现,是other flag没有设置对,对于那些包含category用来扩展ios原始类型的库,链接的时候需要特别的链 ...

  2. Solr集群常用的操作总结

    之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...

  3. MySQL 四种事务隔离级的说明

    很早之前写的文章,重新回顾和学习下: 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ).MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔 ...

  4. YY 神曲 李明霖 14部合集

    http://pan.baidu.com/s/1i5JIvXV

  5. Effective C++ -----条款42:了解typename的双重意义

    声明template参数时,前缀关键字class和typename可互换. 请使用关键字typename标识嵌套从属类型名称:但不得在base class lists(基类列)或member init ...

  6. October 11th 2016 Week 42nd Tuesday

    A friend is one who knows you and loves you just the same. 朋友就是懂你并爱你的人. Leave nothing for tomorrow w ...

  7. mongodb3.x用户角色

    用户和角色是多对多的关系,一个用户可以对应多个角色,一个角色可以拥有多个用户.用户角色的不同对应的权限也是不一样的.下面是一些分配给用户的常见的角色. read                    ...

  8. centos7 php7 httpd

    安装php之前,要先安装几个 1.下载php源码:http://cn2.php.net/distributions/php-7.0.6.tar.gz. 2.然后使用命令:tar -zxvf php-7 ...

  9. 阿里云服务器出现Warning: Cannot modify header information - headers already sent by (output started at 问题的解决方法

    阿里云服务器出现Warning: Cannot modify header information - headers already sent by (output started at 问题的解决 ...

  10. LNMP平台搭建---Linux系统安装篇

    在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...