需要知道进程的属性里的信息
kd> dt _EPROCESS
.........
+0x2e0 UniqueProcessId : Ptr64 Void ///////////进程编号就是任务管理器的PID
..........
+0x2e8 ActiveProcessLinks : _LIST_ENTRY //////进程活动链表,双向链表有所有活动进程连在一起,构成了一个链表PsActiveProcessHead指向全局链表头
...........
+0x308 CreateTime : _LARGE_INTEGER //////////////什么时候创建的
+0x310 ProcessQuotaUsage : [2] Uint8B ////////物理页相关的统计信息
+0x320 ProcessQuotaPeak : [2] Uint8B ///////物理页相关的统计信息
+0x330 PeakVirtualSize : Uint8B /////////虚拟内存相关的统计信息
+0x338 VirtualSize : Uint8B /////////虚拟内存相关的统计信息
+0x350 ExceptionPortData : Ptr64 Void ////////调试相关的
+0x3f8 Peb : Ptr64 _PEB ////////////////////PEB(Process Environment Block进程那个环境块):进程在3环的一个结构体,里面包含了进程的模块列表、是否处于调试状态信息。
关于PEB或其他成员更加详细的说明参考潘爱民老师的<Windows内核原理与实现>中的第3章
+0x418 ObjectTable : Ptr64 _HANDLE_TABLE ///////句柄表
+0x420 DebugPort : Ptr64 Void //////////////调试相关的
+0x450 ImageFileName : [15] UChar /////////////进程镜像文件名 最多15个字节
+0x488 ThreadListHead : _LIST_ENTRY //////双向链表的线程的链表头
+0x498 ActiveThreads : Uint4B //////////////////////////活动线程的数量
.............
+0x4f0 CommitCharge : Uint8B ////////
..................
+0x628 VadRoot : _RTL_AVL_TREE ///////标识0-2G那些地方没占用(和模块隐藏有关)
+0x690 ExitTime : _LARGE_INTEGER //////////退出时间
............
【【【【 +0x030 ThreadListHead : _LIST_ENTRY ///////////双向链表的线程的链表头
+0x488 ThreadListHead : _LIST_ENTRY ////// //////双向链表的线程的链表头
】】】】】
kd> dt _KPROCESS
ntdll!_KPROCESS
+0x000 Header :_DISPATCHER_HEADER //”可等待”对象,比如Mutex互斥体、Event事 件等(WsitForSingleObject)
+0x018 ProfileListHead : _LIST_ENTRY
+0x028 DirectoryTableBase : Uint8B /////// 页目录表基址------最终填到Cr3的值
+0x030 ThreadListHead : _LIST_ENTRY //////////////// //////双向链表的线程的链表头
+0x040 ProcessLock : Uint4B
+0x044 ProcessTimerDelay : Uint4B
+0x048 DeepFreezeStartTime : Uint8B
+0x050 Affinity : _KAFFINITY_EX //////规定进程里面的所有线程能在那个CPU上跑,如果值为1,那只能在0号CPU跑:3是0、1 4是2 5是0、2
windows64位最多64核
+0x0f8 ReadyListHead : _LIST_ENTRY
+0x108 SwapListEntry : _SINGLE_LIST_ENTRY
+0x110 ActiveProcessors : _KAFFINITY_EX
+0x1b8 AutoAlignment : Pos 0, 1 Bit
+0x1b8 DisableBoost : Pos 1, 1 Bit
+0x1b8 DisableQuantum : Pos 2, 1 Bit
+0x1b8 DeepFreeze : Pos 3, 1 Bit
+0x1b8 TimerVirtualization : Pos 4, 1 Bit
+0x1b8 CheckStackExtents : Pos 5, 1 Bit
+0x1b8 CacheIsolationEnabled : Pos 6, 1 Bit
+0x1b8 PpmPolicy : Pos 7, 3 Bits
+0x1b8 ActiveGroupsMask : Pos 10, 20 Bits
+0x1b8 VaSpaceDeleted : Pos 30, 1 Bit
+0x1b8 ReservedFlags : Pos 31, 1 Bit
+0x1b8 ProcessFlags : Int4B
+0x1bc BasePriority : Char //////基础优先级或最低优先级,所有线程最起码的优先级
+0x1bd QuantumReset : Char
+0x1be Visited : Char
+0x1bf Flags : _KEXECUTE_OPTIONS
+0x1c0 ThreadSeed : [20] Uint4B
+0x210 IdealNode : [20] Uint2B
+0x238 IdealGlobalNode : Uint2B
+0x23a Spare1 : Uint2B
+0x23c StackCount : _KSTACK_COUNT
+0x240 ProcessListEntry : _LIST_ENTRY
+0x250 CycleTime : Uint8B
+0x258 ContextSwitches : Uint8B
+0x260 SchedulingGroup : Ptr64 _KSCHEDULING_GROUP
+0x268 FreezeCount : Uint4B
+0x26c KernelTime : Uint4B 记录了进程在内核或用户层运行所花费的时间
+0x270 UserTime : Uint4B
+0x274 ReadyTime : Uint4B
+0x278 UserDirectoryTableBase : Uint8B
+0x280 AddressPolicy : UChar
+0x281 Spare2 : [71] UChar
+0x2c8 InstrumentationCallback : Ptr64 Void
+0x2d0 SecureState : <unnamed-tag>
子结构体
kd> dt _PEB_LDR_DATA
ntdll!_PEB_LDR_DATA
+0x000 Length : Uint4B
+0x004 Initialized : UChar
+0x008 SsHandle : Ptr64 Void
+0x010 InLoadOrderModuleList : _LIST_ENTRY/////////////这个是加载的模块:这三个双向链表当前进程有多少模块
+0x020 InMemoryOrderModuleList : _LIST_ENTRY///////////内存中的模块
+0x030 InInitializationOrderModuleList : _LIST_ENTRY 初始化模块的顺序
+0x040 EntryInProgress : Ptr64 Void
+0x048 ShutdownInProgress : UChar
+0x050 ShutdownThreadId : Ptr64 Void
这三个隐藏的话达到隐藏模块的效果
文档:win10 64位 进程 线程分析.note