Windows X64逆向(1) 认识常用寄存器

常用寄存器:

RSP 堆栈指针
RAX 返回寄存器

RCX 第一个整型参数
RDX 第二个整型参数
R8 第三个整型参数
R9 第四个整型参数

XMMO 第一个浮点数参数(128位长度)
XMM1 第二个浮点数参数
XMM2 第三个浮点数参数
XMM3 第四个浮点数参数

寄存器地址

RAX、RBX、RCX、RDX
rax = 8字节(64位)
eax = 低4字节
ax = 低2字节
ah = 第7个字节
al = 低1字节/第8个字节

RSI、RDI、RBP、RSP
rsi = 8字节(64位)
esi = 低4字节
si = 低2字节

R8 - R15
r8 = 8字节(64位)
r8d = 低4字节
r8w = 低2字节
r8b = 低1字节

所有寄存器

寄存器 状态 使用
RAX 易失的 返回寄存器
RCX 易失的 第一个整型参数
RDX 易失的 第二个整型参数
R8 易失的 第三个整型参数
R9 易失的 第四个整型参数
R10-R11 易失的 必须根据需要由调用方保留,存 syscall/sysret 指今中使用
R12-R15 非易失的 必须由被调用方保留
RDI 非易失的 必须由被调用方保留
RSI 非易失的 必须由被调用方保留
RBX 非易失的 必须由被调用方保留
RBP 非易失的 可用做帧指针;必须由被调用方保留
RSP 非易失的 堆栈指针
XMMO 易失的 第一个浮点数参数(128位长度)
XMM1 易失的 第二个浮点数参数
XMM2 易失的 第三个浮点数参数
XMM3 易失的 第四个浮点数参数
XMM4-XMM5 易失的 必须根据需要由调用方保留
XMM6-XMM15 非易失的 必须根据需要由被调用方保留
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容