逆向补全手册
2025年12月2日大约 1 分钟
数据类型步长对比表
| 数据类型 | 典型大小 | 数组步长 | 相对于char的倍数 | 备注 |
|---|---|---|---|---|
char | 1字节 | 1字节 | 1x | 参考基准 |
BYTE/ uint8_t | 1字节 | 1字节 | 1x | 与char相同 |
bool(C++) | 1字节 | 1字节 | 1x | 实现定义,通常1字节 |
short/ int16_t | 2字节 | 2字节 | 2x | |
WORD | 2字节 | 2字节 | 2x | Windows定义 |
int/ long/ int32_t | 4字节 | 4字节 | 4x | |
DWORD | 4字节 | 4字节 | 4x | Windows定义 |
float | 4字节 | 4字节 | 4x | 单精度浮点数 |
long long/ int64_t | 8字节 | 8字节 | 8x | |
QWORD | 8字节 | 8字节 | 8x | Windows定义 |
double | 8字节 | 8字节 | 8x | 双精度浮点数 |
long double | 8-16字节 | 8-16字节 | 8-16x | 平台相关 |
pointer(32位) | 4字节 | 4字节 | 4x | 32位系统 |
pointer(64位) | 8字节 | 8字节 | 8x | 64位系统 |
常见的条件跳转指令
等于:
je(Jump if Equal):如果 ZF 为 1,则跳转。
不等于:jne(Jump if Not Equal):如果 ZF 为 0,则跳转。
大于:jg(Jump if Greater):如果 SF 为 0 且 ZF 为 0,则跳转。
小于:jl(Jump if Less):如果 SF 为 1 且 ZF 为 0,则跳转。
大于或等于:jge(Jump if Greater or Equal):如果 SF 为 0,则跳转。
小于或等于jle(Jump if Less or Equal):如果 SF 为 1 或 ZF 为 1,则跳转。
标志位存放在标志位寄存器中