我在 Visual C++ 内联汇编中使用了此指令
lea eax, FS:[0]
为什么eax
得到零?
如何获取FS:[0]
的线性地址?
最佳答案
假设 FS 指向 Windows Thread Information Block (TIB),也称为线程环境 block (TEB),通过读取fs:[0x18]
处的32位值来获取TIB的线性地址。在 Visual C++ 中执行此操作的最佳方法是使用 __readfsdword
内在:
TEB *teb = (TEB *) __readfsdword(0x18);
关于assembly - 获取FS :[0] in 32-bit protected mode/MSVC inline asm的线性地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589280/