什么是“mov rax,QWORD PTR fs:0x28”汇编指令呢?

在执行该指令之前,fs包含0x0。

另外我想知道我怎么能从GDB的这个内存区读取,这个命令是什么?

现代操作系统(如Linux和Windows)中的fsgs寄存器指向特定于线程的操作系统和其他操作系统定义的结构。 修改段寄存器是一个受保护的指令,所以只有操作系统可以为你设置。

这个问题应该有助于解释在linux中amd64 fs / gs寄存器的具体含义。

fs寄存器的实际值不是地址。 它是一个选择器 – GDT中的偏移量,它描述了哪个段可以/不能用于哪个段。 你不能看到隐藏的fs base和limit寄存器的值是什么 – 它们是内部的CPU寄存器,只有通过向fs写入一个新的“选择器”(在这一点上,从GDT更新基本/限制寄存器)才能更新。