关闭

win7x64下的kpcr结构和kprcb结构

806人阅读 评论(0) 收藏 举报
分类:


//翻网页看全是x86的,然后我就自己来找x64的

//下面都是windbg调的


nt!_KPCR

   +0x000 NtTib            : _NT_TIB
   +0x000 GdtBase          : Ptr64 _KGDTENTRY64
   +0x008 TssBase          : Ptr64 _KTSS64
   +0x010 UserRsp          : Uint8B
   +0x018 Self             : Ptr64 _KPCR
   +0x020 CurrentPrcb      : Ptr64 _KPRCB
   +0x028 LockArray        : Ptr64 _KSPIN_LOCK_QUEUE
   +0x030 Used_Self        : Ptr64 Void
   +0x038 IdtBase          : Ptr64 _KIDTENTRY64
   +0x040 Unused           : [2] Uint8B
   +0x050 Irql             : UChar
   +0x051 SecondLevelCacheAssociativity : UChar
   +0x052 ObsoleteNumber   : UChar
   +0x053 Fill0            : UChar
   +0x054 Unused0          : [3] Uint4B
   +0x060 MajorVersion     : Uint2B
   +0x062 MinorVersion     : Uint2B
   +0x064 StallScaleFactor : Uint4B
   +0x068 Unused1          : [3] Ptr64 Void
   +0x080 KernelReserved   : [15] Uint4B
   +0x0bc SecondLevelCacheSize : Uint4B
   +0x0c0 HalReserved      : [16] Uint4B
   +0x100 Unused2          : Uint4B
   +0x108 KdVersionBlock   : Ptr64 Void
   +0x110 Unused3          : Ptr64 Void
   +0x118 PcrAlign1        : [24] Uint4B

   +0x180 Prcb             : _KPRCB


nt!_NT_TIB
   +0x000 ExceptionList    : Ptr64 _EXCEPTION_REGISTRATION_RECORD
   +0x008 StackBase        : Ptr64 Void
   +0x010 StackLimit       : Ptr64 Void
   +0x018 SubSystemTib     : Ptr64 Void
   +0x020 FiberData        : Ptr64 Void
   +0x020 Version          : Uint4B
   +0x028 ArbitraryUserPointer : Ptr64 Void
   +0x030 Self             : Ptr64 _NT_TIB


nt!_KPRCB
   +0x000 MxCsr            : Uint4B
   +0x004 LegacyNumber     : UChar
   +0x005 ReservedMustBeZero : UChar
   +0x006 InterruptRequest : UChar
   +0x007 IdleHalt         : UChar
   +0x008 CurrentThread    : Ptr64 _KTHREAD
   +0x010 NextThread       : Ptr64 _KTHREAD
   +0x018 IdleThread       : Ptr64 _KTHREAD
   +0x020 NestingLevel     : UChar
   +0x021 PrcbPad00        : [3] UChar
   +0x024 Number           : Uint4B
   +0x028 RspBase          : Uint8B
   +0x030 PrcbLock         : Uint8B
   +0x038 PrcbPad01        : Uint8B
   +0x040 ProcessorState   : _KPROCESSOR_STATE
   +0x5f0 CpuType          : Char
   +0x5f1 CpuID            : Char
   +0x5f2 CpuStep          : Uint2B
   +0x5f2 CpuStepping      : UChar
   +0x5f3 CpuModel         : UChar
   +0x5f4 MHz              : Uint4B
   +0x5f8 HalReserved      : [8] Uint8B
   +0x638 MinorVersion     : Uint2B
   +0x63a MajorVersion     : Uint2B
   +0x63c BuildType        : UChar
   +0x63d CpuVendor        : UChar
   +0x63e CoresPerPhysicalProcessor : UChar
   +0x63f LogicalProcessorsPerCore : UChar
   +0x640 ApicMask         : Uint4B
   +0x644 CFlushSize       : Uint4B
   +0x648 AcpiReserved     : Ptr64 Void
   +0x650 InitialApicId    : Uint4B
   +0x654 Stride           : Uint4B
   +0x658 Group            : Uint2B
   +0x660 GroupSetMember   : Uint8B
   +0x668 GroupIndex       : UChar
   +0x670 LockQueue        : [17] _KSPIN_LOCK_QUEUE
   +0x780 PPLookasideList  : [16] _PP_LOOKASIDE_LIST
   +0x880 PPNPagedLookasideList : [32] _GENERAL_LOOKASIDE_POOL
   +0x1480 PPPagedLookasideList : [32] _GENERAL_LOOKASIDE_POOL
   +0x2080 PacketBarrier    : Int4B
   +0x2088 DeferredReadyListHead : _SINGLE_LIST_ENTRY
   +0x2090 MmPageFaultCount : Int4B
   +0x2094 MmCopyOnWriteCount : Int4B
   +0x2098 MmTransitionCount : Int4B
   +0x209c MmDemandZeroCount : Int4B
   +0x20a0 MmPageReadCount  : Int4B
   +0x20a4 MmPageReadIoCount : Int4B
   +0x20a8 MmDirtyPagesWriteCount : Int4B
   +0x20ac MmDirtyWriteIoCount : Int4B
   +0x20b0 MmMappedPagesWriteCount : Int4B
   +0x20b4 MmMappedWriteIoCount : Int4B
   +0x20b8 KeSystemCalls    : Uint4B
   +0x20bc KeContextSwitches : Uint4B
   +0x20c0 CcFastReadNoWait : Uint4B
   +0x20c4 CcFastReadWait   : Uint4B
   +0x20c8 CcFastReadNotPossible : Uint4B
   +0x20cc CcCopyReadNoWait : Uint4B
   +0x20d0 CcCopyReadWait   : Uint4B
   +0x20d4 CcCopyReadNoWaitMiss : Uint4B
   +0x20d8 LookasideIrpFloat : Int4B
   +0x20dc IoReadOperationCount : Int4B
   +0x20e0 IoWriteOperationCount : Int4B
   +0x20e4 IoOtherOperationCount : Int4B
   +0x20e8 IoReadTransferCount : _LARGE_INTEGER
   +0x20f0 IoWriteTransferCount : _LARGE_INTEGER
   +0x20f8 IoOtherTransferCount : _LARGE_INTEGER
   +0x2100 TargetCount      : Int4B
   +0x2104 IpiFrozen        : Uint4B
   +0x2180 DpcData          : [2] _KDPC_DATA
   +0x21c0 DpcStack         : Ptr64 Void
   +0x21c8 MaximumDpcQueueDepth : Int4B
   +0x21cc DpcRequestRate   : Uint4B
   +0x21d0 MinimumDpcRate   : Uint4B
   +0x21d4 DpcLastCount     : Uint4B
   +0x21d8 ThreadDpcEnable  : UChar
   +0x21d9 QuantumEnd       : UChar
   +0x21da DpcRoutineActive : UChar
   +0x21db IdleSchedule     : UChar
   +0x21dc DpcRequestSummary : Int4B
   +0x21dc DpcRequestSlot   : [2] Int2B
   +0x21dc NormalDpcState   : Int2B
   +0x21de DpcThreadActive  : Pos 0, 1 Bit
   +0x21de ThreadDpcState   : Int2B
   +0x21e0 TimerHand        : Uint4B
   +0x21e4 MasterOffset     : Int4B
   +0x21e8 LastTick         : Uint4B
   +0x21ec UnusedPad        : Uint4B
   +0x21f0 PrcbPad50        : [2] Uint8B
   +0x2200 TimerTable       : _KTIMER_TABLE
   +0x4400 DpcGate          : _KGATE
   +0x4418 PrcbPad52        : Ptr64 Void
   +0x4420 CallDpc          : _KDPC
   +0x4460 ClockKeepAlive   : Int4B
   +0x4464 ClockCheckSlot   : UChar
   +0x4465 ClockPollCycle   : UChar
   +0x4466 NmiActive        : Uint2B
   +0x4468 DpcWatchdogPeriod : Int4B
   +0x446c DpcWatchdogCount : Int4B
   +0x4470 TickOffset       : Uint8B
   +0x4478 KeSpinLockOrdering : Int4B
   +0x447c PrcbPad70        : Uint4B
   +0x4480 WaitListHead     : _LIST_ENTRY
   +0x4490 WaitLock         : Uint8B
   +0x4498 ReadySummary     : Uint4B
   +0x449c QueueIndex       : Uint4B
   +0x44a0 TimerExpirationDpc : _KDPC
   +0x44e0 PrcbPad72        : [4] Uint8B
   +0x4500 DispatcherReadyListHead : [32] _LIST_ENTRY
   +0x4700 InterruptCount   : Uint4B
   +0x4704 KernelTime       : Uint4B
   +0x4708 UserTime         : Uint4B
   +0x470c DpcTime          : Uint4B
   +0x4710 InterruptTime    : Uint4B
   +0x4714 AdjustDpcThreshold : Uint4B
   +0x4718 DebuggerSavedIRQL : UChar
   +0x4719 PrcbPad80        : [7] UChar
   +0x4720 DpcTimeCount     : Uint4B
   +0x4724 DpcTimeLimit     : Uint4B
   +0x4728 PeriodicCount    : Uint4B
   +0x472c PeriodicBias     : Uint4B
   +0x4730 AvailableTime    : Uint4B
   +0x4734 KeExceptionDispatchCount : Uint4B
   +0x4738 ParentNode       : Ptr64 _KNODE
   +0x4740 StartCycles      : Uint8B
   +0x4748 PrcbPad82        : [3] Uint8B
   +0x4760 MmSpinLockOrdering : Int4B
   +0x4764 PageColor        : Uint4B
   +0x4768 NodeColor        : Uint4B
   +0x476c NodeShiftedColor : Uint4B
   +0x4770 SecondaryColorMask : Uint4B
   +0x4774 PrcbPad83        : Uint4B
   +0x4778 CycleTime        : Uint8B
   +0x4780 CcFastMdlReadNoWait : Uint4B
   +0x4784 CcFastMdlReadWait : Uint4B
   +0x4788 CcFastMdlReadNotPossible : Uint4B
   +0x478c CcMapDataNoWait  : Uint4B
   +0x4790 CcMapDataWait    : Uint4B
   +0x4794 CcPinMappedDataCount : Uint4B
   +0x4798 CcPinReadNoWait  : Uint4B
   +0x479c CcPinReadWait    : Uint4B
   +0x47a0 CcMdlReadNoWait  : Uint4B
   +0x47a4 CcMdlReadWait    : Uint4B
   +0x47a8 CcLazyWriteHotSpots : Uint4B
   +0x47ac CcLazyWriteIos   : Uint4B
   +0x47b0 CcLazyWritePages : Uint4B
   +0x47b4 CcDataFlushes    : Uint4B
   +0x47b8 CcDataPages      : Uint4B
   +0x47bc CcLostDelayedWrites : Uint4B
   +0x47c0 CcFastReadResourceMiss : Uint4B
   +0x47c4 CcCopyReadWaitMiss : Uint4B
   +0x47c8 CcFastMdlReadResourceMiss : Uint4B
   +0x47cc CcMapDataNoWaitMiss : Uint4B
   +0x47d0 CcMapDataWaitMiss : Uint4B
   +0x47d4 CcPinReadNoWaitMiss : Uint4B
   +0x47d8 CcPinReadWaitMiss : Uint4B
   +0x47dc CcMdlReadNoWaitMiss : Uint4B
   +0x47e0 CcMdlReadWaitMiss : Uint4B
   +0x47e4 CcReadAheadIos   : Uint4B
   +0x47e8 MmCacheTransitionCount : Int4B
   +0x47ec MmCacheReadCount : Int4B
   +0x47f0 MmCacheIoCount   : Int4B
   +0x47f4 PrcbPad91        : [1] Uint4B
   +0x47f8 RuntimeAccumulation : Uint8B
   +0x4800 PowerState       : _PROCESSOR_POWER_STATE
   +0x4900 PrcbPad92        : [16] UChar
   +0x4910 KeAlignmentFixupCount : Uint4B
   +0x4918 DpcWatchdogDpc   : _KDPC
   +0x4958 DpcWatchdogTimer : _KTIMER
   +0x4998 Cache            : [5] _CACHE_DESCRIPTOR
   +0x49d4 CacheCount       : Uint4B
   +0x49d8 CachedCommit     : Uint4B
   +0x49dc CachedResidentAvailable : Uint4B
   +0x49e0 HyperPte         : Ptr64 Void
   +0x49e8 WheaInfo         : Ptr64 Void
   +0x49f0 EtwSupport       : Ptr64 Void
   +0x4a00 InterruptObjectPool : _SLIST_HEADER
   +0x4a10 HypercallPageList : _SLIST_HEADER
   +0x4a20 HypercallPageVirtual : Ptr64 Void
   +0x4a28 VirtualApicAssist : Ptr64 Void
   +0x4a30 StatisticsPage   : Ptr64 Uint8B
   +0x4a38 RateControl      : Ptr64 Void
   +0x4a40 CacheProcessorMask : [5] Uint8B
   +0x4a68 PackageProcessorSet : _KAFFINITY_EX
   +0x4a90 CoreProcessorSet : Uint8B
   +0x4a98 PebsIndexAddress : Ptr64 Void
   +0x4aa0 PrcbPad93        : [12] Uint8B
   +0x4b00 SpinLockAcquireCount : Uint4B
   +0x4b04 SpinLockContentionCount : Uint4B
   +0x4b08 SpinLockSpinCount : Uint4B
   +0x4b0c IpiSendRequestBroadcastCount : Uint4B
   +0x4b10 IpiSendRequestRoutineCount : Uint4B
   +0x4b14 IpiSendSoftwareInterruptCount : Uint4B
   +0x4b18 ExInitializeResourceCount : Uint4B
   +0x4b1c ExReInitializeResourceCount : Uint4B
   +0x4b20 ExDeleteResourceCount : Uint4B
   +0x4b24 ExecutiveResourceAcquiresCount : Uint4B
   +0x4b28 ExecutiveResourceContentionsCount : Uint4B
   +0x4b2c ExecutiveResourceReleaseExclusiveCount : Uint4B
   +0x4b30 ExecutiveResourceReleaseSharedCount : Uint4B
   +0x4b34 ExecutiveResourceConvertsCount : Uint4B
   +0x4b38 ExAcqResExclusiveAttempts : Uint4B
   +0x4b3c ExAcqResExclusiveAcquiresExclusive : Uint4B
   +0x4b40 ExAcqResExclusiveAcquiresExclusiveRecursive : Uint4B
   +0x4b44 ExAcqResExclusiveWaits : Uint4B
   +0x4b48 ExAcqResExclusiveNotAcquires : Uint4B
   +0x4b4c ExAcqResSharedAttempts : Uint4B
   +0x4b50 ExAcqResSharedAcquiresExclusive : Uint4B
   +0x4b54 ExAcqResSharedAcquiresShared : Uint4B
   +0x4b58 ExAcqResSharedAcquiresSharedRecursive : Uint4B
   +0x4b5c ExAcqResSharedWaits : Uint4B
   +0x4b60 ExAcqResSharedNotAcquires : Uint4B
   +0x4b64 ExAcqResSharedStarveExclusiveAttempts : Uint4B
   +0x4b68 ExAcqResSharedStarveExclusiveAcquiresExclusive : Uint4B
   +0x4b6c ExAcqResSharedStarveExclusiveAcquiresShared : Uint4B
   +0x4b70 ExAcqResSharedStarveExclusiveAcquiresSharedRecursive : Uint4B
   +0x4b74 ExAcqResSharedStarveExclusiveWaits : Uint4B
   +0x4b78 ExAcqResSharedStarveExclusiveNotAcquires : Uint4B
   +0x4b7c ExAcqResSharedWaitForExclusiveAttempts : Uint4B
   +0x4b80 ExAcqResSharedWaitForExclusiveAcquiresExclusive : Uint4B
   +0x4b84 ExAcqResSharedWaitForExclusiveAcquiresShared : Uint4B
   +0x4b88 ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive : Uint4B
   +0x4b8c ExAcqResSharedWaitForExclusiveWaits : Uint4B
   +0x4b90 ExAcqResSharedWaitForExclusiveNotAcquires : Uint4B
   +0x4b94 ExSetResOwnerPointerExclusive : Uint4B
   +0x4b98 ExSetResOwnerPointerSharedNew : Uint4B
   +0x4b9c ExSetResOwnerPointerSharedOld : Uint4B
   +0x4ba0 ExTryToAcqExclusiveAttempts : Uint4B
   +0x4ba4 ExTryToAcqExclusiveAcquires : Uint4B
   +0x4ba8 ExBoostExclusiveOwner : Uint4B
   +0x4bac ExBoostSharedOwners : Uint4B
   +0x4bb0 ExEtwSynchTrackingNotificationsCount : Uint4B
   +0x4bb4 ExEtwSynchTrackingNotificationsAccountedCount : Uint4B
   +0x4bb8 VendorString     : [13] UChar
   +0x4bc5 PrcbPad10        : [3] UChar
   +0x4bc8 FeatureBits      : Uint4B
   +0x4bd0 UpdateSignature  : _LARGE_INTEGER
   +0x4bd8 Context          : Ptr64 _CONTEXT
   +0x4be0 ContextFlags     : Uint4B
   +0x4be8 ExtendedState    : Ptr64 _XSAVE_AREA
   +0x4c00 Mailbox          : Ptr64 _REQUEST_MAILBOX
   +0x4c80 RequestMailbox   : [1] _REQUEST_MAILBOX

0
0
查看评论

KPCR

由于Windows需要支持多个CPU, 因此Windows内核中为此定义了一套以处理器控制区(Processor Control Region)即KPCR为枢纽的数据结构, 使每个CPU都有个KPCR. 其中KPCR这个结构中有一个域KPRCB(Kernel Processor Control Bl...
  • stonesharp
  • stonesharp
  • 2015-11-08 11:05
  • 1529

KPCR

由于Windows需要支持多个CPU, 因此Windows内核中为此定义了一套以处理器控制区(Processor Control Region)即KPCR为枢纽的数据结构, 使每个CPU都有个KPCR. 其中KPCR这个结构中有一个域KPRCB(Kernel Processor Control Bl...
  • hu3167343
  • hu3167343
  • 2012-05-29 14:21
  • 20091

ffdff000 处的结构 KPCR

ffdff000 处的结构 KPCR作者: JIURL                 主页: http://jiurl.yeah.net  ...
  • imquestion
  • imquestion
  • 2003-11-14 08:37
  • 4305

X64下的解析句柄表

一:X64下的句柄表的查找: 关于PspCidTable的寻找,我是通过PsLookupProcessByProcessId查找特征码寻找pspCidTable和32位没什么区别。 疑问:我想在KPCR中的KdVersionBlock中寻找,但是64位系统不知道为什么总是NULL,各位牛牛知道的...
  • zfdyq0
  • zfdyq0
  • 2014-12-07 17:50
  • 1304

使用WinDbg查看GDT表

一、前言: 1、由于我在Windows 10中,用WinDbg查看GDT表发现显示的开始地址数值为0(不知道为什么?XP才能查看?) 2、所以这里使用的是Windows XP做实验. 3、关于有些人使用r gdtr和r gdtl命令查看GDT,经测试,出现 Bad register error in...
  • Aaron133
  • Aaron133
  • 2017-12-19 14:22
  • 5200

windows internals(深入解析windows操作系统)笔记

1.R0运行内核态R3运行用户态,R1.R2闲置 2.侵入式调试和非侵入式调试   侵入式:可以检查和改变进程的内存,设置断点,执行其他的调试信息   非侵入式:并不作为一个调试器负载到目标进程。可以检查和改变进程中的内存,不能设置断点。 1.Windows是...
  • a3125504x
  • a3125504x
  • 2017-09-26 17:23
  • 215

windows内核情景分析 --- DPC

DPC不同APC,DPC的全名是‘延迟过程调用’。 DPC最初作用是设计为中断服务程序的一部分。因为每次触发中断,都会关中断,然后执行中断服务例程。由于关中断了,所以中断服务例程必须短小精悍,不能消耗过多时间,否则会导致系统丢失大量其他中断。但是有的中断,其中断服务例程要做的事情本来就很多,那怎么...
  • maomao171314
  • maomao171314
  • 2014-04-04 10:18
  • 1333

exe文件结构及原理

文件结构及原理二 EXE文件结构 EXE 文件比较复杂,每个EXE文件都有一个文件头,结构如下:       EXE文件头信息        ―――――――――――――――――――     ├ 偏移量 ┤   意义       ┤      ├00h-01h ┤MZEXE文件标记    ┤     ...
  • todototry
  • todototry
  • 2007-02-01 17:17
  • 1948

Oracle的逻辑结构和物理结构

oracle数据库可以从两个层次划分架构,一个为逻辑结构,另一个为物理结构 如下图所示: 1 逻辑结构    表空间:为数据库提供使用存储空间的逻辑结构,一个表空间可以包含多个数据文件,表空间是逻辑结构和物理结         &#...
  • tang490996083
  • tang490996083
  • 2013-11-18 21:19
  • 1010

NT内核代码分析

某种意义上nt内核用irql解决了一切,这正是由于它有一个基本的,核心的支撑。这就是它的抽象中断框架---IRQL。在linux中,我们知道,如 果我要知道能否调用schedule进行调度,那么我必须知道还有什么数据结构处在临界区,这个时候是否适合抢占,等等,当然内核的数据结构已经做得很好,我们做开...
  • dog250
  • dog250
  • 2010-02-09 22:04
  • 2368
    个人资料
    • 访问:5122次
    • 积分:131
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类