You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连续两条目的操作数为rcx的mov指令的作用是什么?

两条MOV指令的含义解析

这两条mov指令是连续的指针取值操作,完全没有你猜测的“相加”逻辑,具体拆解如下:

  • 第一条指令:mov rcx,qword ptr gs:[20h]
    在Windows内核环境中,gs段寄存器指向当前处理器的_KPCR(处理器控制区)结构体。这条指令从_KPCR偏移0x20的位置取出一个64位指针值,存入rcx寄存器,这个指针通常指向当前线程的_KTHREAD结构体。

  • 第二条指令:mov rcx,qword ptr [rcx+6180h]
    这条指令是覆盖rcx原有值的操作:先将rcx中存储的指针(即_KTHREAD的地址)加上0x6180的偏移,再从这个新地址中取出64位值重新存入rcx。最终rcx里的内容是一个CONTEXT结构体的指针——因为后续调用的nt!RtlCaptureContext函数,在x64调用约定下要求用rcx传递第一个参数,而这个参数正是用来保存处理器上下文的CONTEXT结构体地址。

简单来说,这两条指令是通过两次“取指针指向的内存值”,一步步把rcx设置成目标函数需要的参数地址。

对应的汇编代码片段:

...   
mov     rcx,qword ptr gs:[20h]
mov     rcx,qword ptr [rcx+6180h]
call    nt!RtlCaptureContext (fffff802`c1d4c7b0)

内容的提问来源于stack exchange,提问作者JkT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:55:35