相关推荐
-
ETHREAD 结构体属性介绍
typedef struct _ETHREAD { KTHREAD Tcb; // 线程创建时间 LARGE_INTEGER CreateTime; union { // 线程退出时间 LARGE_INTEGER ExitTime; // 用于跨进程通信 LIST_ENTRY LpcReplyChain; // 带键事件等待链表 LIST
-
01 EPROCESS、ETHREAD、KPCR结构
每个windows进程在0环都有一个对应的结构体:EPROCESS,这个结构体包含了进程所有重要的信息。
-
第七章——Windows内核基础-内核数据结构(内核对象,SSDT,TEB,PEB)
一,内核对象 内核对象的结构图 一个内核对象分为对象头和对象体两个部分,在对象头中至少有一个object_header和其他信息。对象体紧挨着对象头中的object_header。 这里注意对象指针指向的并不是对象头,如果要访问对象头,需要拿对象体减去一个特定的偏移值,获取到对象头,在通过对象头获取其他字段 Windows内核对象可以分为三类: ⑴.Dispatcher对象 ...
-
windows内核之进程/线程结构体
进程与线程 目录 文章目录目录进程结构体EPROCESS_EPROCESS_KPROCESS其他重要结构体线程结构体ETHREADETHREAD_KTHREAD其他重要结构体CPU控制区结构体KPCRNT_TIB其他重要成员KPRCB等待链表和调度链表等待链表33个链表版本差异总结 进程结构体EPROCESS 注意分清楚peb(ring 3)与EPROCESS(ring 0) 结构体很多,往往我...
-
_ETHREAD断链 —— 实现线程隐藏
简介 线程所属的父进程 _EPROCESS 结构体中的 ThreadListHead 成员是当前进程中所有线程的双向链表头,该成员有两个,分别在 0x50 和 0x190 处。我们可以通过该线程链表头进行线程遍历,也可以通过直接遍历 _ETHREAD 结构体中的 ThreadListEntry 成员实现遍历进程中的所有线程,ThreadListEntry 分别位于 0x1b0 和 0x22c 处。 我们可以通过 _ETHREAD 的 ThreadListEntry 断链实现线程隐藏。需要注意的是,Threa
-
JIURL玩玩Win2k进程线程篇 EPROCESS
JIURL玩玩Win2k进程线程篇 EPROCESS作者: JIURL 主页: http://jiurl.yeah.net 日期: 2003-7-30 每个进程都有一个 EPROCESS 结构,里面保存着进程的各种信息,和相关结构的指针
-
进程线程001 进程线程结构体和KPCR
文章目录前言EPROCESSKPROCESS主要成员EPROCESS其他成员ETHREADKTHREAD主要成员介绍ETHREAD其他成员介绍KPCRKPCR介绍_NT_TIB主要成员介绍KPCR的其他成员介绍KPRCB成员介绍KPRCB成员介绍 前言 进程线程的知识点很多,如果我们想了解问题的本质,就要从一些关键的结构体学起,先来介绍一个与进程密切相关的结构体 EPROCESS 每个进程在零环都...
-
R0-R3 现场保护(_KTrap_Frame/_KPCR/_ETHREAD)—— 分析内核函数KiSystemService
简介 在进程由用户态进入内核态的过程中,发生了 ESP/SS/EIP/CS 的切换。因此,在进程权限切换的工程中,必然要进行寄存器的现场保护。 这里,要使用到3个内核结构体:_KTrap_Frame/_KPCR/_ETHREAD。 _KTrap_Frame 每个线程在内核中都有一个 _KTrap_Frame 结构体,用于操作系统对线程的管理,该结构体时操作系统进行维护的。 _KTrap_Frame 的结构如下: kd> dt _KTrap_Frame nt!_KTRAP_FRAME //调
-
关于Ethread的一些研究
环境 win764 以TP为例 ring3保护 它会在windbg断下 这个时候我们需要拿到当前线程对象 应该到 当前使用的CPU的地址 _KPRCB-> CurrentThread 就是当前线程值 我们知道了当前线程。我们就可以拿到线程的Tid 我们也可以根绝_EThread->TrapFrame 对应的 _KTRAP_FRAME ...
-
EThread的线程链表
【提示】能加驱动进内核,就没必要弄EXE了,所以我个人觉得没啥实际用途,仅供观看Windows会给每一个进程建立一个EPROCESS结构,给每一个线程建立ETHREAD结构,EPROCESS结构第一个成员是KPROCESS结构,ETHREAD结构第一个成员是KTHREAD结构。每个进程的线程的ETHREAD结构都会按下图所示链接起来:<img style="margin: 2px;" title=
-
执行体线程--ETHREAD
typedef struct _ETHREAD { KTHREAD Tcb;//内嵌了KTHREAD对象作为第一个数据成员 LARGE_INTEGER CreateTime;//包含了线程创建时间,他是在线程创建时被赋值的。 union { LARGE_INTEGER ExitTime;//包含了线程的退出时间, LIST_ENTRY L
-
Ethread结构体介绍(未完待更新)
StartAddress 总是 ntdll!RtlUserThreadStart(在win7下的3环线程)Win32StartAddress 等于 imagebase+entrypoint(基址 +程序入口点)
-
_ETHREAD中两处process的区别
+44h的位置 该处的process是系统用于线程访问内存时使用的cr3值。改变该处的值为其他进程的cr3就可以访问其他进程的内存。(ReadProcessMemory就使用了该方法) +220h 该处的process记录的是哪一个进程创建的这个线程的cr3 SwapContext里面使用的是+44h位置的值,判断要切换的线程是否跟当前线程是在同一个进程 ...
-
JIURL玩玩Win2k进程线程篇 PEB
JIURL玩玩Win2k进程线程篇 PEB 作者: JIURL 主页: http://jiurl.yeah.net 日期: 2003-7-30 PEB,Process Environment Block ,进程环境块。位于用户地址空间。
-
ETHREAD APC 《寒江独钓》内核学习笔记(4)
继续学习windows 中和线程有关系的数据结构: ETHREAD、KTHREAD、TEB 1. 相关阅读材料 《windows 内核原理与实现》 --- 潘爱民 2. 数据结构分析 我们知道,windows内核中的执行体层负责各种与管理和策略相关的功能,而内核层(微内核)实现了操作系统的核心机制。进程和线程在这两层上都有对应的数据结构。我们先从执行体层的ETH...
-
EPROCESS ETHREAD PEB重要成员
-----------------------------------------------------------------------win7 x86中---------------------------------------------------------------------------- kd> dt _PEBnt!_PEB +0x000 Inheri...
-
内核线程结构--KTHREAD
WRK中KTHREAD typedef struct _KTHREAD { // // The dispatcher header and mutant listhead are fairly infrequently // referenced. // DISPATCHER_HEADER Header;//线程对象也是个分发器对象。 LIST
-
线程的数据结构
除非显式地声明,否则,你可以假设以下讨论的内容既适合用户模式的线程,也适用于内核模式的线程。 在系统级别上,Windows线程是由一个线程块执行体(ETHREAD)来表示的,如图6.7所示。ETHREAD块和它所指向的结构都位于系统地址空间中,唯一的例外是线程环境快(TEB),它位于进程地址空间中。而且,Windows子系统进程(Csrss)为Windows进程中创建的每个线程维护了一个平行结构
-
win10 x64 内核结构体
nt!_EPROCESS +0x000 Pcb : _KPROCESS +0x2d8 ProcessLock : _EX_PUSH_LOCK +0x2e0 UniqueProcessId : Ptr64 Void +0x2e8 ActiveProcessLinks : _LIST_ENTRY +0x2f8 RundownProtect : _EX_RUNDOWN_REF +0x300 Flags2 : Uint