win10 64位 进程 线程分析
需要知道进程的属性里的信息
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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-7-22 01:27
被慢热型编辑
,原因: