Vista下的vad,让我好找啊..........

kd> dt _eprocess 834d7020
ntdll!_EPROCESS
..............
+0x232 SubSystemMinorVersion : 0 ''
+0x233 SubSystemMajorVersion : 0x6 ''
+0x232 SubSystemVersion : 0x600
+0x234 PriorityClass    : 0x2 ''
   +0x238 VadRoot          : _MM_AVL_TABLE
+0x258 Cookie           : 0x6021f7a7
+0x25c AlpcContext      : _ALPC_PROCESS_CONTEXT

在xp下,这是一个指向MMVAD的指针,03下就是这个_MM_AVL_TABLE了,不过跟vista还不太一样。

kd> dt _MM_AVL_TABLE 834d7020+0x238
ntdll!_MM_AVL_TABLE
+0x000 BalancedRoot     : _MMADDRESS_NODE
+0x014 DepthOfTree      : 0y00110 (0x6)
+0x014 Unused           : 0y000
+0x014 NumberGenericTableElements : 0y000000000000000000011011 (0x1b)
+0x018 NodeHint         : 0x832741c0 
+0x01c NodeFreeHint     : (null) 
kd> dt _MMADDRESS_NODE 834d7020+0x238
ntdll!_MMADDRESS_NODE
+0x000 u1               : <unnamed-tag>
+0x004 LeftChild        : (null) 
+0x008 RightChild       : 0x82f11e08 _MMADDRESS_NODE
+0x00c StartingVpn      : 0
+0x010 EndingVpn        : 0
kd> dt _MMvad 834d7020+0x238
nt!_MMVAD
+0x000 u1               : <unnamed-tag>
+0x004 LeftChild        : (null) 
   +0x008 RightChild       : 0x82f11e08 _MMVAD
+0x00c StartingVpn      : 0
+0x010 EndingVpn        : 0
+0x014 u                : <unnamed-tag>
+0x018 PushLock         : _EX_PUSH_LOCK
+0x01c u5               : <unnamed-tag>
+0x020 u2               : <unnamed-tag>
+0x024 Subsection       : (null) 
+0x024 MappedSubsection : (null) 
+0x028 FirstPrototypePte : 0x91bf704c _MMPTE
+0x02c LastContiguousPte : 0x91bf704c _MMPTE

这三个结构开头都一样....下面是一个child的值

kd> dt _MMvad 0x82f11e08
nt!_MMVAD
+0x000 u1               : <unnamed-tag>
+0x004 LeftChild        : 0x832a12e8 _MMVAD
+0x008 RightChild       : 0x834d0a10 _MMVAD
+0x00c StartingVpn      : 0x4a090
+0x010 EndingVpn        : 0x4a0df
+0x014 u                : <unnamed-tag>
+0x018 PushLock         : _EX_PUSH_LOCK
+0x01c u5               : <unnamed-tag>
+0x020 u2               : <unnamed-tag>
   +0x024 Subsection       : 0x83051658 _SUBSECTION
+0x024 MappedSubsection : 0x83051658 _MSUBSECTION
+0x028 FirstPrototypePte : 0x8fe568c8 _MMPTE
+0x02c LastContiguousPte : 0xfffffffc _MMPTE

_control_area 没了,瞪了半天才看见一个Section 估计这个是,应该早就发现的....因为和xp下的control偏移一样。

kd> dt _SUBSECTION 0x83051658
nt!_SUBSECTION
+0x000 ControlArea      : 0x83051610 _CONTROL_AREA
+0x004 SubsectionBase   : 0x8fe568c8 _MMPTE
+0x008 NextSubsection   : 0x83051678 _SUBSECTION
+0x00c PtesInSubsection : 1
+0x010 UnusedPtes       : 0
+0x010 GlobalPerSessionHead : (null) 
+0x014 u                : <unnamed-tag>
+0x018 StartingSector   : 0
+0x01c NumberOfFullSectors : 2
kd> dt _CONTROL_AREA 0x83051610
nt!_CONTROL_AREA
+0x000 Segment          : 0x8fe56898 _SEGMENT
+0x004 DereferenceList  : _LIST_ENTRY [ 0x0 - 0x8306c97c ]
+0x00c NumberOfSectionReferences : 1
+0x010 NumberOfPfnReferences : 0x33
+0x014 NumberOfMappedViews : 1
+0x018 NumberOfUserReferences : 2
+0x01c u                : <unnamed-tag>
+0x020 u1               : <unnamed-tag>
   +0x024 FilePointer      : _EX_FAST_REF
+0x028 ControlAreaLock  : 0
+0x02c StartingFrame    : 0
+0x030 WaitingForDeletion : (null) 
+0x034 u2               : <unnamed-tag>
+0x040 LockedPages      : 0

这个结构也被扩展了,低三位清零

kd> dt _EX_FAST_REF 0x83051610 + 0x24 
ntdll!_EX_FAST_REF
+0x000 Object           : 0x830f3e1f 
+0x000 RefCnt           : 0y111
+0x000 Value            : 0x830f3e1f

kd> dt _file_object 0x830f3e1f&0xfffffff8
ntdll!_FILE_OBJECT
+0x000 Type             : 5
+0x002 Size             : 128
+0x004 DeviceObject     : 0x82e64e10 _DEVICE_OBJECT
+0x008 Vpb              : 0x82e641e8 _VPB
+0x00c FsContext        : 0x914f1d80 
+0x010 FsContext2       : 0x914f1ed8 
+0x014 SectionObjectPointer : 0x82ebed0c _SECTION_OBJECT_POINTERS
+0x018 PrivateCacheMap  : (null) 
+0x01c FinalStatus      : 0
+0x020 RelatedFileObject : 0x83309368 _FILE_OBJECT
+0x024 LockOperation    : 0 ''
+0x025 DeletePending    : 0 ''
+0x026 ReadAccess       : 0x1 ''
+0x027 WriteAccess      : 0 ''
+0x028 DeleteAccess     : 0 ''
+0x029 SharedRead       : 0x1 ''
+0x02a SharedWrite      : 0x1 ''
+0x02b SharedDelete     : 0x1 ''
+0x02c Flags            : 0x44042
+0x030 FileName         : _UNICODE_STRING "\Windows\System32\cmd.exe"
+0x038 CurrentByteOffset : _LARGE_INTEGER 0x0
+0x040 Waiters          : 0
+0x044 Busy             : 0
+0x048 LastLock         : (null) 
+0x04c Lock             : _KEVENT
+0x05c Event            : _KEVENT
+0x06c CompletionContext : (null) 
+0x070 IrpListLock      : 0
+0x074 IrpList          : _LIST_ENTRY [ 0x830f3e8c - 0x830f3e8c ]
+0x07c FileObjectExtension : 0x8304de48 

通过vad树还是能得到模块的信息滴....(至少是一个基址)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值