ring0 根据EThread遍历线程

Posted 狂客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ring0 根据EThread遍历线程相关的知识,希望对你有一定的参考价值。

ntdll!_ETHREAD
+0x000 Tcb : _KTHREAD
+0x200 CreateTime : _LARGE_INTEGER 0xff58b008
+0x208 ExitTime : _LARGE_INTEGER 0x400000`91334e00
+0x208 KeyedWaitChain : _LIST_ENTRY [ 0x91334e00 - 0x400000 ]
+0x210 ExitStatus : 800443912   //不为0 表示线程结束
+0x214 PostBlockList : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x214 ForwardLinkShadow : (null)
+0x218 StartAddress : (null)
+0x21c TerminationPort : 0x0000002c _TERMINATION_PORT
+0x21c ReaperLink : 0x0000002c _ETHREAD
+0x21c KeyedWaitValue : 0x0000002c
+0x220 ActiveTimerListLock : 0x590
+0x224 ActiveTimerListHead : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x22c Cid : _CLIENT_ID
+0x234 KeyedWaitSemaphore : _KSEMAPHORE
+0x234 AlpcWaitSemaphore : _KSEMAPHORE
+0x248 ClientSecurity : _PS_CLIENT_SECURITY_CONTEXT
+0x24c IrpList : _LIST_ENTRY [ 0x4f6c3056 - 0x4a4a544c ]
+0x254 TopLevelIrp : 0x4268554e
+0x258 DeviceToVerify : 0x0200564f _DEVICE_OBJECT
+0x25c CpuQuotaApc : (null)
+0x260 Win32StartAddress : (null)
+0x264 LegacyPowerObject : (null)
+0x268 ThreadListEntry : _LIST_ENTRY [ 0x89540d40 - 0x86af3cc8 ] 这块是EPROCESS的ThreadListHead
+0x270 RundownProtect : _EX_RUNDOWN_REF
+0x274 ThreadLock : _EX_PUSH_LOCK
+0x278 ReadClusterSize : 1
+0x27c MmLockOrdering : 1511391236
+0x280 CrossThreadFlags : 3
+0x280 Terminated : 0y1
+0x280 ThreadInserted : 0y1
+0x280 HideFromDebugger : 0y0
+0x280 ActiveImpersonationInfo : 0y0
+0x280 Reserved : 0y0
+0x280 HardErrorsAreDisabled : 0y0
+0x280 BreakOnTermination : 0y0
+0x280 SkipCreationMsg : 0y0
+0x280 SkipTerminationMsg : 0y0
+0x280 CopyTokenOnOpen : 0y0
+0x280 ThreadIoPriority : 0y000
+0x280 ThreadPagePriority : 0y000
+0x280 RundownFail : 0y0
+0x280 NeedsWorkingSetAging : 0y0
+0x284 SameThreadPassiveFlags : 0
+0x284 ActiveExWorker : 0y0
+0x284 ExWorkerCanWaitUser : 0y0
+0x284 MemoryMaker : 0y0
+0x284 ClonedThread : 0y0
+0x284 KeyedEventInUse : 0y0
+0x284 RateApcState : 0y00
+0x284 SelfTerminate : 0y0
+0x288 SameThreadApcFlags : 0x7ffdd000
+0x288 Spare : 0y0
+0x288 StartAddressInvalid : 0y0
+0x288 EtwPageFaultCalloutActive : 0y0
+0x288 OwnsProcessWorkingSetExclusive : 0y0
+0x288 OwnsProcessWorkingSetShared : 0y0
+0x288 OwnsSystemCacheWorkingSetExclusive : 0y0
+0x288 OwnsSystemCacheWorkingSetShared : 0y0
+0x288 OwnsSessionWorkingSetExclusive : 0y0
+0x289 OwnsSessionWorkingSetShared : 0y0
+0x289 OwnsProcessAddressSpaceExclusive : 0y0
+0x289 OwnsProcessAddressSpaceShared : 0y0
+0x289 SuppressSymbolLoad : 0y0
+0x289 Prefetching : 0y1
+0x289 OwnsDynamicMemoryShared : 0y0
+0x289 OwnsChangeControlAreaExclusive : 0y1
+0x289 OwnsChangeControlAreaShared : 0y1
+0x28a OwnsPagedPoolWorkingSetExclusive : 0y1
+0x28a OwnsPagedPoolWorkingSetShared : 0y0
+0x28a OwnsSystemPtesWorkingSetExclusive : 0y1
+0x28a OwnsSystemPtesWorkingSetShared : 0y1
+0x28a TrimTrigger : 0y11
+0x28a Spare1 : 0y11
+0x28b PriorityRegionActive : 0x7f ‘‘
+0x28c CacheManagerActive : 0 ‘‘
+0x28d DisablePageFaultClustering : 0 ‘‘
+0x28e ActiveFaultCount : 0 ‘‘
+0x28f LockOrderState : 0 ‘‘
+0x290 AlpcMessageId : 1
+0x294 AlpcMessage : (null)
+0x294 AlpcReceiveAttributeSet : 0
+0x298 AlpcWaitListEntry : _LIST_ENTRY [ 0x1 - 0x0 ]
+0x2a0 CacheManagerCount : 0xce
+0x2a4 IoBoostCount : 0
+0x2a8 IrpListLock : 0x3c
+0x2ac ReservedForSynchTracking : (null)
+0x2b0 CmCallbackListHead : _SINGLE_LIST_ENTRY
+0x2b4 KernelStackReference : 0

以上是关于ring0 根据EThread遍历线程的主要内容,如果未能解决你的问题,请参考以下文章

java中可以根据线程名而不是id获得想要的线程吗

IRQL Ring0实现

ring0 暴力枚举进程

ring0 恢复SSDTHook

数据结构,如何根据邻接表画深度,广度优先生成树?

Erlang 构建错误:未找到本机 ethread 实现