struct software_t
{
int info;
char name[32];
};
struct softwares_t
{
//a variable length structure
long count;
software_t softs[];
};
IDA中可变的结构体创建的时候和普通的一样,仅仅最后一个元素定义的数组元素为0.
00000000 software_t struc ; (sizeof=0x24)
00000000 info DCD ?
00000004 name DCB 32 dup(?) ; string(C)
00000024 software_t ends
00000000 softwares_t struc ; (sizeof=0x4, variable size)
00000000 count DCD ?
00000004 softs software_t 0 dup(?)
00000004 softwares_t ends
定义结构体时,既然IDA不能计算出这种结构体的大小,我们就必须通过选择结构体的区域,来定义大小。