Что делает инструкция сборки mov rax, QWORD PTR fs: 0x28?
Непосредственно перед выполнением этой команды fs содержит 0x0.
Также я хотел бы знать, как я могу читать из этой области памяти в GDB, какова будет команда для этого?
Ответ 1
Регистры fs и gs в современных операционных системах, таких как Linux и Windows, указывают на специфичные для потока и другие структуры, определенные ОС. Изменение регистра сегмента является защищенной инструкцией, поэтому только ОС может установить их для вас.
Фактическое значение регистра fs не является адресом. Это селектор - смещение в GDT, которое описывает, для чего этот сегмент может/не может использоваться. Вы не можете видеть, каковы значения скрытых базовых и предельных регистров fs - это внутренние регистры процессора, которые обновляются только путем записи нового "селектора" в fs (после чего базовые/предельные регистры обновляются из GDT).