我在 5bbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3&6A6M7Y4y4G2k6Y4c8Q4x3X3g2F1k6i4c8Q4x3V1k6C8k6i4u0F1k6h3I4Q4y4h3k6K6N6s2u0#2j5%4c8Q4x3V1k6$3K9i4y4@1j5g2)9J5c8V1!0n7d9V1g2o6g2q4)9#2k6V1S2q4b7f1c8q4f1W2)9J5k6h3S2@1L8h3H3`. 上看的Windows Vista :OBJECT_HEADER定义是:(我在网上好像看过说明Windows 2k,Windows Vista,Windows xp都是这样定义OBJECT_HEADER的)
typedef struct _QUAD
{
union
{
INT64 UseThisFieldToCopy;
Float DoNotUseThisField;
};
} QUAD, *PQUAD;
typedef struct _OBJECT_HEADER
{
LONG PointerCount;
union
{
LONG HandleCount;
PVOID NextToFree;
};
POBJECT_TYPE Type;
UCHAR NameInfoOffset;
UCHAR HandleInfoOffset;
UCHAR QuotaInfoOffset;
UCHAR Flags;
union
{
POBJECT_CREATE_INFORMATION ObjectCreateInfo;
PVOID QuotaBlockCharged;
};
PVOID SecurityDescriptor;
QUAD Body;
} OBJECT_HEADER, *POBJECT_HEADER;
如果是这样的定义,为什么看雪上会有一篇翻译的文章说Windows XP SP2 英文版OBJECT_HEADER的大小是:0x18
好像翻译文章也有问题:+0x018 Body : _QUAD 应该说Body在OBJECT_HEADER的偏移是:0x18,而OBJECT_HEADER的大小应该是:0x18+8(大小32字节)才对啊!真是糟糕!