연구 자료/포렌식

_KTHREAD 구조체 정보

단디연구소 2016. 2. 5. 16:37


_KTHREAD 구조체 정보



0: kd> dt _KTHREAD

nt!_KTHREAD

   +0x000 Header           : _DISPATCHER_HEADER (디스패처 해더)

   +0x010 CycleTime        : Uint8B

   +0x018 HighCycleTime    : Uint4B

   +0x020 QuantumTarget    : Uint8B

   +0x028 InitialStack     : Ptr32 Void (스택 시작 주소)

   +0x02c StackLimit       : Ptr32 Void (스택 사용제한 주소)

   +0x030 KernelStack      : Ptr32 Void (현 스택 사용 위치 포인터)

   +0x034 ThreadLock       : Uint4B

   +0x038 WaitRegister     : _KWAIT_STATUS_REGISTER

   +0x039 Running          : UChar (실행 상태)

   +0x03a Alerted          : [2] UChar (알람)

   +0x03c KernelStackResident : Pos 0, 1 Bit

   +0x03c ReadyTransition  : Pos 1, 1 Bit

   +0x03c ProcessReadyQueue : Pos 2, 1 Bit

   +0x03c WaitNext         : Pos 3, 1 Bit

   +0x03c SystemAffinityActive : Pos 4, 1 Bit

   +0x03c Alertable        : Pos 5, 1 Bit (유저 APC 가능 사용 유무)

   +0x03c GdiFlushActive   : Pos 6, 1 Bit

   +0x03c UserStackWalkActive : Pos 7, 1 Bit

   +0x03c ApcInterruptRequest : Pos 8, 1 Bit

   +0x03c ForceDeferSchedule : Pos 9, 1 Bit

   +0x03c QuantumEndMigrate : Pos 10, 1 Bit

   +0x03c UmsDirectedSwitchEnable : Pos 11, 1 Bit

   +0x03c TimerActive      : Pos 12, 1 Bit

   +0x03c SystemThread     : Pos 13, 1 Bit

   +0x03c Reserved         : Pos 14, 18 Bits

   +0x03c MiscFlags        : Int4B

   +0x040 ApcState         : _KAPC_STATE

   +0x040 ApcStateFill     : [23] UChar

   +0x057 Priority         : Char (스레드 우선 순위)

   +0x058 NextProcessor    : Uint4B (다음 실행 시 사용 될 프로세서)

   +0x05c DeferredProcessor : Uint4B (지연된 프로세서)

   +0x060 ApcQueueLock     : Uint4B

   +0x064 ContextSwitches  : Uint4B (컨텍스트 스위칭 횟수)

   +0x068 State            : UChar (스레드 상태)

   +0x069 NpxState         : Char

   +0x06a WaitIrql         : UChar

   +0x06b WaitMode         : Char

   +0x06c WaitStatus       : Int4B (대기 상태)

   +0x070 WaitBlockList    : Ptr32 _KWAIT_BLOCK

   +0x074 WaitListEntry    : _LIST_ENTRY (대기 스레드 리스트)

   +0x074 SwapListEntry    : _SINGLE_LIST_ENTRY

   +0x07c Queue            : Ptr32 _KQUEUE (큐 리스트)

   +0x080 WaitTime         : Uint4B (대기시간)

   +0x084 KernelApcDisable : Int2B (커널 APC 사용 유무)

   +0x086 SpecialApcDisable : Int2B (특별 APC 사용 유무)

   +0x084 CombinedApcDisable : Uint4B

   +0x088 Teb              : Ptr32 Void (TEB 포인터)

   +0x090 Timer            : _KTIMER

   +0x0b8 AutoAlignment    : Pos 0, 1 Bit

   +0x0b8 DisableBoost     : Pos 1, 1 Bit

   +0x0b8 EtwStackTraceApc1Inserted : Pos 2, 1 Bit

   +0x0b8 EtwStackTraceApc2Inserted : Pos 3, 1 Bit

   +0x0b8 CalloutActive    : Pos 4, 1 Bit

   +0x0b8 ApcQueueable     : Pos 5, 1 Bit

   +0x0b8 EnableStackSwap  : Pos 6, 1 Bit

   +0x0b8 GuiThread        : Pos 7, 1 Bit

   +0x0b8 UmsPerformingSyscall : Pos 8, 1 Bit

   +0x0b8 VdmSafe          : Pos 9, 1 Bit

   +0x0b8 UmsDispatched    : Pos 10, 1 Bit

   +0x0b8 ReservedFlags    : Pos 11, 21 Bits

   +0x0b8 ThreadFlags      : Int4B

   +0x0bc ServiceTable     : Ptr32 Void

   +0x0c0 WaitBlock        : [4] _KWAIT_BLOCK

   +0x120 QueueListEntry   : _LIST_ENTRY (큐 리스트)

   +0x128 TrapFrame        : Ptr32 _KTRAP_FRAME (예외 발생 시 사용될 트랩 프레임 포인터)

   +0x12c FirstArgument    : Ptr32 Void

   +0x130 CallbackStack    : Ptr32 Void

   +0x130 CallbackDepth    : Uint4B

   +0x134 ApcStateIndex    : UChar

   +0x135 BasePriority     : Char (스레드 기본 우선 순위)

   +0x136 PriorityDecrement : Char

   +0x136 ForegroundBoost  : Pos 0, 4 Bits

   +0x136 UnusualBoost     : Pos 4, 4 Bits

   +0x137 Preempted        : UChar (스레드가 선점하였을 시 설정 됨)

   +0x138 AdjustReason     : UChar

   +0x139 AdjustIncrement  : Char

   +0x13a PreviousMode     : Char

   +0x13b Saturation       : Char

   +0x13c SystemCallNumber : Uint4B

   +0x140 FreezeCount      : Uint4B (대기 횟수)

   +0x144 UserAffinity     : _GROUP_AFFINITY

   +0x150 Process          : Ptr32 _KPROCESS (스레드가 속한 프로세스의 KPROCESS 포인터)

   +0x154 Affinity         : _GROUP_AFFINITY (선호 프로세서)

   +0x160 IdealProcessor   : Uint4B

   +0x164 UserIdealProcessor : Uint4B

   +0x168 ApcStatePointer  : [2] Ptr32 _KAPC_STATE

   +0x170 SavedApcState    : _KAPC_STATE

   +0x170 SavedApcStateFill : [23] UChar

   +0x187 WaitReason       : UChar

   +0x188 SuspendCount     : Char (일시 중지 횟수)

   +0x189 Spare1           : Char

   +0x18a OtherPlatformFill : UChar

   +0x18c Win32Thread      : Ptr32 Void (유저모드 스레드 주소)

   +0x190 StackBase        : Ptr32 Void (스택 베이스 주소)

   +0x194 SuspendApc       : _KAPC

   +0x194 SuspendApcFill0  : [1] UChar

   +0x195 ResourceIndex    : UChar

   +0x194 SuspendApcFill1  : [3] UChar

   +0x197 QuantumReset     : UChar (현 스레드에 할당 된 퀀텀 값)

   +0x194 SuspendApcFill2  : [4] UChar

   +0x198 KernelTime       : Uint4B (커널 모드에서 현 스레드 실행시간)

   +0x194 SuspendApcFill3  : [36] UChar

   +0x1b8 WaitPrcb         : Ptr32 _KPRCB

   +0x194 SuspendApcFill4  : [40] UChar

   +0x1bc LegoData         : Ptr32 Void

   +0x194 SuspendApcFill5  : [47] UChar

   +0x1c3 LargeStack       : UChar

   +0x1c4 UserTime         : Uint4B (유저 모드에서 현 스레드 실행시간)

   +0x1c8 SuspendSemaphore : _KSEMAPHORE

   +0x1c8 SuspendSemaphorefill : [20] UChar

   +0x1dc SListFaultCount  : Uint4B

   +0x1e0 ThreadListEntry  : _LIST_ENTRY (프로세스가 가지고 있는 모든 스레드 목록)

   +0x1e8 MutantListHead   : _LIST_ENTRY

   +0x1f0 SListFaultAddress : Ptr32 Void

   +0x1f4 ThreadCounters   : Ptr32 _KTHREAD_COUNTERS

   +0x1f8 XStateSave       : Ptr32 _XSTATE_SAVE