seh-windows结构化异常处理研究
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的关系
[施工中]
评论