Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何解码此指令;调用*fs:0x334";要知道确切的函数地址?_Assembly_Linux Kernel_X86_X86 64 - Fatal编程技术网

Assembly 如何解码此指令;调用*fs:0x334";要知道确切的函数地址?

Assembly 如何解码此指令;调用*fs:0x334";要知道确切的函数地址?,assembly,linux-kernel,x86,x86-64,Assembly,Linux Kernel,X86,X86 64,在运行时,如何获取寄存器fs中的值并在“call*fs:0x334”中计算目标函数的地址?我可以使用哪种x86程序集?调用*fs:0x334中的目标函数地址是存储在fs:0x334中的值 所以,如果你想知道那个地址是什么,你可以直接加载它 e、 g.mov-rax,[fs:0x334](nasm)或mov%fs:0x334,%rax(气体) 您不需要知道fs本身指向什么(也可以是:它指向描述符表中的一个条目,您可能有读权限,也可能没有读权限,它指向一个线性地址,通过任何其他段选择器都可以或不可以

在运行时,如何获取寄存器fs中的值并在“call*fs:0x334”中计算目标函数的地址?我可以使用哪种x86程序集?

调用*fs:0x334中的目标函数地址是存储在
fs:0x334
中的值

所以,如果你想知道那个地址是什么,你可以直接加载它

e、 g.
mov-rax,[fs:0x334]
(nasm)或
mov%fs:0x334,%rax
(气体)

您不需要知道
fs
本身指向什么(也可以是:它指向描述符表中的一个条目,您可能有读权限,也可能没有读权限,它指向一个线性地址,通过任何其他段选择器都可以或不可以访问)


在x86-64 Linux上,内核和glibc合作确保
fs
始终指向当前运行线程的线程本地存储区域。(在32位x86 Linux上,
gs
用于此目的。)

调用*fs:0x334中的目标函数地址是存储在
fs:0x334
中的值

所以,如果你想知道那个地址是什么,你可以直接加载它

e、 g.
mov-rax,[fs:0x334]
(nasm)或
mov%fs:0x334,%rax
(气体)

您不需要知道
fs
本身指向什么(也可以是:它指向描述符表中的一个条目,您可能有读权限,也可能没有读权限,它指向一个线性地址,通过任何其他段选择器都可以或不可以访问)

在x86-64 Linux上,内核和glibc合作确保
fs
始终指向当前运行线程的线程本地存储区域。(在32位x86 Linux上,
gs
用于此目的。)

通常选择器(如
fs
)有一个值,后面的部分是该值的偏移量。通常选择器(如
fs
)有一个值,后面的部分是该值的偏移量。