SEH结构化异常处理:

由于这个东西是基于线程的,所以先学习一下PEB和TEB

TEB&PEB

线程环境块

系统在TEB中保存了最频繁使用的线程相关数据,大小为4kb。系统中每个进程都有一个自己的TEB,一个进程的所有TEB都以堆栈的形式存放在内存中。同理,PEB为进程环境块,TEB中有指向PEB的指针,每个进程的PEB也以堆栈形式放在内存中

  • 在x64架构环境下,GS + 30h处存储的是Teb结构体的基地址,GS + 60h处存储的是Peb结构体的基地址。
  • 在x86架构环境下,FS + 18h处存储的是Teb结构体的基地址,FS + 30h处存储的是Peb结构体的基地址。

而指向SEH链开头就是TEB的0号位
以下是TEB与seh的关系
867232_UQX698BZWQ7UZ8Y

[施工中]