如何使用按位运算符(如 OR)添加标准符号常量

逆向工程 艾达 调试符号
2021-06-11 08:53:18

我与IDA的工作和我有OpenProcess函数接收dwDesireAccess0x410

在此处输入图片说明

根据MSDN我们可以看到这0x410OR两个访问权限之间的结果

PROCESS_QUERY_INFORMATION (0x0400)
PROCESS_VM_READ (0x0010)

如何设置标准符号常量,例如
PROCESS_QUERY_INFORMATION | PROCESS_VM_READ

我必须手动完成(使用“手动...”)?

这只是我所拥有的:
在此处输入图片说明

1个回答

您可以创建一个位域 enum由于包含PROCESS_VM_READ在 MSSDK 类型库中的枚举已经存在,我们将复制它并将其修改为位域。

  1. 转到枚举子视图,然后右键单击并添加枚举...Insert在 Windows 上)。 在此处输入图片说明

  2. 单击按符号名称添加标准枚举
    在此处输入图片说明

  3. 查找PROCESS_VM_READ,然后单击确定
    在此处输入图片说明

  4. MACRO_PROCESS应该添加一个名为的新枚举展开它(CtrlNumpad +或右键单击 →取消隐藏

  5. 删除枚举成员PROCESS_ALL_ACCESSU选择时按下)。
    在此处输入图片说明

  6. 右键单击并选择编辑枚举... ( CtrlE)。

  7. 选中位域,然后单击确定(如果不执行第 5 步,此步骤将失败) 在此处输入图片说明

现在 MACRO_PROCESS 位域应该在您点击M410h时出现,并且应该显示为类似

mov     eax, PROCESS_VM_READ or PROCESS_QUERY_INFORMATION