Адрес целевой функции в call *fs:0x334
- это значение, хранящееся в fs:0x334
.
Итак, если вы хотите узнать, что это за адрес, вы можете просто загрузить его.
например. mov rax, [fs:0x334]
(нос) или mov %fs:0x334, %rax
(газ).
Вам не нужно знать, на что указывает fs
(что также хорошо: оно указывает на запись в таблице дескрипторов, которую вы можете иметь или не иметь права на чтение, которая указывает на линейный адрес, который может или не может быть доступен через любой другой селектор сегмента).
В x86-64 Linux ядро и glibc взаимодействуют, чтобы гарантировать, что fs
всегда указывает на локальную область потока для текущего запущенного потока. (В 32-битном Linux x86 вместо этого используется gs
.)