IDA Pro:在参数上使用结构

逆向工程 艾达 结构
2021-06-11 07:02:04

我有一个小函数,它struct作为参数给出struct容貌是这样的:

struct my_struct {
  short a;
  unsigned int b;
  unsigned int c;
};

考虑到对齐,我struct在 IDA 中构建了以下内容

field_0 +0x0
field_1 +0x4
field_2 +0x8

编译器构建它,使其rbp+0x10作为 中的第一个字段structrbp+0x14作为第二个字段,依此类推。现在出现了问题,因为如果我尝试将预定义的 IDAstruct应用于指令,我总是得到类似[rbp+struct.field_0+0x10]. 如果我的结构中实际上有一些东西,这会变得更加复杂+0x10,因为它只是显示[rbp+struct_fieldX](这是错误的)。

问题是:有没有办法告诉 IDA(我使用 6.3)应用struct偏移量为0x10

这个简单案例的肮脏技巧是and创建一个struct具有 2 个size_t虚拟字段的,但这似乎不是正确的方法。RIPSFP

1个回答

在函数的堆栈视图中添加您的结构:

  1. 将光标置于函数的反汇编视图中,按Ctrl+K打开堆栈视图。
  2. 在堆栈视图中,确保至少+00000010在堆栈中存在足够的函数参数用于D根据需要添加更多函数参数。
  3. 将光标定位+00000010在堆栈视图中行上,然后按Alt+Q指定my_struct该偏移量。