如何在 x64/x32Dbg 中定义结构?
逆向工程
结构
x64dbg
2021-07-07 16:15:19
1个回答
现在不可能将反汇编中的指令标记为结构成员。然而,可以定义结构并在内存中访问它们(类似于 010 编辑器)。这方面的主要信息来源是这里和这里。
例如,如果您有以下代码:
#pragma pack(1)
struct MyStruct
{
int a;
bool b;
const char* c;
};
void test(MyStruct* p)
{
MyStruct* s = p;
s->a = 0x1234;
s->b = true;
s->c = "Hello world";
}
int main()
{
MyStruct s;
test(&s);
return s.a;
}
您可以使用Parse header选项Struct卡中的选项来解析以下标题:
struct MyStruct
{
int a;
bool b;
const char* c;
};
这将加载结构(使用命令EnumTypes查看类型列表)。现在,当您暂停test函数的反汇编时,您可以使用Visit type选项Struct卡中的选项以ecx结构化方式显示内存的内容:

结构成员的地址也将作为临时标签添加,以便您可以在信息框中查看指令所指的内容:

由于社区缺乏兴趣,因此尚未进一步开发此功能。
