Windows X64逆向(1) 认识常用寄存器
2023-01-31 本文已影响0人
NewSongs
常用寄存器:
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 | 非易失的 | 必须根据需要由被调用方保留 |