处理基本表达式元素¶
表达式能够求值许多不同的元素,包括:
CPU 寄存器(EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI):你也可以使用 1 字节和 2 字节寄存器(例如,AL 是 EAX 的低字节,AX 是 EAX 的低字)。EIP 也可以使用。
段寄存器(CS, DS, ES, SS, FS, GS)
FPU 寄存器(ST0-ST7)
简单标签():可以是 API 函数名(如 GetModuleHandle)或用户自定义标签。
Windows 常量():比如 ERROR_SUCCESS。整数():以十六进制格式书写,或后跟小数点的十进制格式(例如,FFFF 或 65535.)。
浮点数():允许十进制格式的指数(例如,654.123e-5)。
字符串字面量():用引号包裹(例如,"my string")。
表达式引擎按上面列出的顺序查找这些元素。例如,如果你有一个与 Windows 常量同名的标签,引擎会使用标签的地址而不是常量的值。但如果你有一个以寄存器命名的标签(比如 EAX),引擎会使用寄存器值,而不是标签值。