Windows逆向工程提升之线程环境块

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

FS 寄存器的作用与默认指向

TEB 和 PEB 的基本结构与用途

TEB(线程环境块)

PEB(进程环境块)


FS 寄存器的作用与默认指向

  • 在 Windows 平台的 32 位(x86)环境中,FS 段寄存器默认指向当前线程的 TEB(Thread Environment Block, 线程环境块)

  • 操作系统为每个线程分配一个独立的 TEB(即线程环境块),通过 FS 段寄存器,线程可以快速访问自己独立的数据。

  • FS 段寄存器的基址指向 TEB 起始地址,借助 FS 段偏移可以直接访问 TEB 内的字段,例如:

    • FS:[0h] 对应线程的 SEH(Structured Exception Handling,结构化异常处理)链表的头节点。

    • FS:[30h] 对应当前线程的 PEB(Process Environment Block, 进程环境块)地址。


TEB 和 PEB 的基本结构与用途

TEB(线程环境块)

TEB 是与线程相关的一块数据结构,包含线程的关键信息。主要用途包括:

  • 存储线程的异常处理链 (SEH)。

  • 存储线程栈信息,如栈的基址和栈的大小。

  • 存储线程 ID 和进程 ID。

  • 提供指向 PEB 的指针。

  • 管理线程本地存储(TLS, Thread-Local Storage)。

TEB 的主要偏移量:

偏移量 数据 描述
0x00 SEH(异常处理链表头) 结构化异常处理相关链表的起始地址
0x18 Self Pointer 指向 TEB 自身的指针(自引用)
0x20 ProcessID 当前线程所属的进程 ID
0x24 ThreadID 当前线程的线程 ID
0x30 PEB Pointer 当前线程所属进程的 PEB 指针

PEB(进程环境块)

PEB 是与进程相关的一块数据结构,保存一个进程的全局信息。主要功能包括:

  • 管理进程加载的模块列表。

  • 记录程序映像的基地址(Image Base Address)。

  • 提供堆管理信息。

  • 存储环境变量。

PEB 的主要偏移量:

偏移量 数据 描述
0x08 Image Base Address 当前进程的映像基地址
0x0C Loader Data(PEB_LDR) 加载的模块信息(LDR 数据)
0x10 Process Parameters 进程参数,包括命令行、环境变量等

你可能感兴趣的:(单片机,嵌入式硬件,开发语言,windows,c#,汇编,安全)