【发布时间】:2013-05-24 11:12:18
【问题描述】:
我正在尝试使用 C/ASM 中的 PEB 结构,但在我想了解一些基础知识之前。
我在某处读到大多数进程的PEB 地址为0x07FFDA00。
现在这个地址是相对于进程基地址的,即(0x00400000 + 0x07FFDA00 == PEB base addr)?
因为所有进程当然不能将其PEB 发送到此地址。
【问题讨论】:
-
为什么不用NtQueryInformationProcess 查找而不是假设?
-
因为只是一个虚拟地址,所以每个进程都可以是一样的。它不是 RVA - 内存中的东西很少是 RVA,RVA 更像是 PE。
fs:[30](32bit)或gs:[0x60](64bit)直接指向PEB,不需要偏移。顺便说一句,他们不是说 0x7FFDA000 吗?此外,进程并没有真正的基地址,图像有。