Windows XP内核变量

本文是根据网上的两篇文章《Finding some non-exported kernel variables in windows xp》和《Getting Kernel Variables from KdVersionBLOCK, Part 2》得出的结果,作的总结。

_KPCR

   +0x000 NtTib            : _NT_TIB

   +0x01c SelfPcr          : Ptr32 _KPCR

   +0x020 Prcb             : Ptr32 _KPRCB

   +0x024 Irql             : UChar

   +0x028 IRR              : Uint4B

   +0x02c IrrActive        : Uint4B

   +0x030 IDR              : Uint4B

   +0x034 KdVersionBlock   : Ptr32 Void   ß此处

   +0x038 IDT              : Ptr32 _KIDTENTRY

   +0x03c GDT              : Ptr32 _KGDTENTRY

   +0x040 TSS              : Ptr32 _KTSS

   +0x044 MajorVersion     : Uint2B

   +0x046 MinorVersion     : Uint2B

   +0x048 SetMember        : Uint4B

   +0x04c StallScaleFactor : Uint4B

   +0x050 DebugActive      : UChar

   +0x051 Number           : UChar

   +0x052 Spare0           : UChar

   +0x053 SecondLevelCacheAssociativity : UChar

   +0x054 VdmAlert         : Uint4B

   +0x058 KernelReserved   : [14] Uint4B

   +0x090 SecondLevelCacheSize : Uint4B

   +0x094 HalReserved      : [16] Uint4B

   +0x0d4 InterruptMode    : Uint4B

   +0x0d8 Spare1           : UChar

   +0x0dc KernelReserved2  : [17] Uint4B

   +0x120 PrcbData         : _KPRCB

 

 

 

typedef struct _DBGKD_GET_VERSION64 {

    +0x000  USHORT  MajorVersion;

    +0x002     USHORT  MinorVersion;

    +0x004     USHORT  ProtocolVersion;

    +0x006     USHORT  Flags;

    +0x008     USHORT  MachineType;

    +0x00a     UCHAR   MaxPacketType;

    +0x00b     UCHAR   MaxStateChange;

    +0x00c     UCHAR   MaxManipulate;

    +0x00d     UCHAR   Simulation;

    +0x00e     USHORT  Unused[1];

    +0x010     ULONG64 KernBase;

+0x018     ULONG64 PsLoadedModuleList;

+0x020     ULONG64 DebuggerDataList;  ß此处

 

} DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;

 

//

typedef struct _DBGKD_DEBUG_DATA_HEADER64 {

   +0x000     LIST_ENTRY64 List;

   +0x010     ULONG           OwnerTag;

   +0x014        ULONG           Size;

} DBGKD_DEBUG_DATA_HEADER64, *PDBGKD_DEBUG_DATA_HEADER64;

 

typedef struct _KDDEBUGGER_DATA64 {

    +0x000     DBGKD_DEBUG_DATA_HEADER64 Header;

    +0x018     ULONG64   KernBase;

    +0x020     ULONG64   BreakpointWithStatus;

    +0x028     ULONG64   SavedContext;

+0x030     USHORT  ThCallbackStack;       

+0x032     USHORT  NextCallback;  

    +0x034     USHORT  FramePointer;

    +0x036     USHORT  PaeEnabled:1;

    +0x038     ULONG64   KiCallUserMode;

    +0x040     ULONG64   KeUserCallbackDispatcher;

    +0x048     ULONG64   PsLoadedModuleList;

    +0x050     ULONG64   PsActiveProcessHead;

    +0x058     ULONG64   PspCidTable;

    +0x060     ULONG64   ExpSystemResourcesList;

    +0x068     ULONG64   ExpPagedPoolDescriptor;

    +0x070     ULONG64   ExpNumberOfPagedPools;

    +0x078     ULONG64   KeTimeIncrement;

    +0x080     ULONG64   KeBugCheckCallbackListHead;

    +0x088     ULONG64   KiBugcheckData;

    +0x090     ULONG64   IopErrorLogListHead;

    +0x098     ULONG64   ObpRootDirectoryObject;

    +0x0a0     ULONG64   ObpTypeObjectType;

    +0x0a8     ULONG64   MmSystemCacheStart;

    +0x0b0     ULONG64   MmSystemCacheEnd;

    +0x0b8     ULONG64   MmSystemCacheWs;

    +0x0c0     ULONG64   MmPfnDatabase;

    +0x0c8     ULONG64   MmSystemPtesStart;

    +0x0d0     ULONG64   MmSystemPtesEnd;

    +0x0d8     ULONG64   MmSubsectionBase;

    +0x0e0     ULONG64   MmNumberOfPagingFiles;

    +0x0e8     ULONG64   MmLowestPhysicalPage;

    +0x0f0      ULONG64   MmHighestPhysicalPage;

    +0x0f8      ULONG64   MmNumberOfPhysicalPages;

    +0x100     ULONG64   MmMaximumNonPagedPoolInBytes;

    +0x108     ULONG64   MmNonPagedSystemStart;

    +0x110     ULONG64   MmNonPagedPoolStart;

    +0x118     ULONG64   MmNonPagedPoolEnd;

    +0x120     ULONG64   MmPagedPoolStart;

    +0x128     ULONG64   MmPagedPoolEnd;

    +0x130     ULONG64   MmPagedPoolInformation;

    +0x138     ULONG64   MmPageSize;

    +0x140     ULONG64   MmSizeOfPagedPoolInBytes;

    +0x148     ULONG64   MmTotalCommitLimit;

    +0x150     ULONG64   MmTotalCommittedPages;

    +0x158     ULONG64   MmSharedCommit;

    +0x160     ULONG64   MmDriverCommit;

    +0x168     ULONG64   MmProcessCommit;

    +0x170     ULONG64   MmPagedPoolCommit;

    +0x178     ULONG64   MmExtendedCommit;

    +0x180     ULONG64   MmZeroedPageListHead;

    +0x188     ULONG64   MmFreePageListHead;

    +0x190     ULONG64   MmStandbyPageListHead;

    +0x198     ULONG64   MmModifiedPageListHead;

    +0x1a0     ULONG64   MmModifiedNoWritePageListHead;

    +0x1a8     ULONG64   MmAvailablePages;

    +0x1b0     ULONG64   MmResidentAvailablePages;

    +0x1b8     ULONG64   PoolTrackTable;

    +0x1c0     ULONG64   NonPagedPoolDescriptor;

    +0x1c8     ULONG64   MmHighestUserAddress;

    +0x1d0     ULONG64   MmSystemRangeStart;

    +0x1d8     ULONG64   MmUserProbeAddress;

    +0x1e0     ULONG64   KdPrintCircularBuffer;

    +0x1e8     ULONG64   KdPrintCircularBufferEnd;

    +0x1f0      ULONG64   KdPrintWritePointer;

    +0x1f8      ULONG64   KdPrintRolloverCount;

    +0x200     ULONG64   MmLoadedUserImageList;

    // NT 5.1 Addition

    +0x208     ULONG64   NtBuildLab;

    +0x210     ULONG64   KiNormalSystemCall;

    // NT 5.0 QFE addition

    +0x218     ULONG64   KiProcessorBlock;

    +0x220     ULONG64   MmUnloadedDrivers;

    +0x228     ULONG64   MmLastUnloadedDriver;

    +0x230     ULONG64   MmTriageActionTaken;

    +0x238     ULONG64   MmSpecialPoolTag;

    +0x240     ULONG64   KernelVerifier;

    +0x248     ULONG64   MmVerifierData;

    +0x250     ULONG64   MmAllocatedNonPagedPool;

    +0x258     ULONG64   MmPeakCommitment;

    +0x260     ULONG64   MmTotalCommitLimitMaximum;

    +0x268     ULONG64   CmNtCSDVersion;

    // NT 5.1 Addition

    +0x270     ULONG64   MmPhysicalMemoryBlock;

    +0x278     ULONG64   MmSessionBase;

    +0x280     ULONG64   MmSessionSize;

    +0x288     ULONG64   MmSystemParentTablePage;

} KDDEBUGGER_DATA64, *PKDDEBUGGER_DATA64;

 

NT 5.0 就是Windows 2000;NT5.1就是Windows XP.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值