Windows逆向工程:find一个特定的Windows结构

我正在用Windbg在Windows(x64)内核上做一些反向操作。 我尝试确定由以下字节表示的结构:

0e 00 10 00 00 00 00 0090 db fe db 12 00 00 00

我假设:

  • 90 db fe db 12 00 00 00是一个指向string的指针

kd> d 12dbfedb90

00000012`dcec7210 63 00 6f 00 75 00 6e – 00 74 00 72 00 79 00 00 country

  • 0e 00是string的大小
  • 10 00是具有终止空字节的string的大小

所以我认为原来的结构如下所示:

typedef struct _SSTR { WORD wStringLen; WORD wStringWithNullCharLen; // Must be wStringLen + 1 DWORD dwReserved; // Must be 0 PWSTR pwString; } SSTR; typedef SSTR *PSSTR; 

这个结构可能会logging在MSDN中,但我没有发现什么…这些字节对应的Windows结构是什么?

好像

 typedef struct _STRING { USHORT Length; USHORT MaximumLength; PCHAR Buffer; } STRING, OEM_STRING, *PSTRING; 

http://msdn.microsoft.com/en-us/library/ms648424(v=vs.85).aspx

其中您的dwReservedPCHAR Buffer指针的填充。

或者可能是http://msdn.microsoft.com/en-us/library/windows/hardware/ff564879(v=vs.85).aspx这是非常相似的

 typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING, *PUNICODE_STRING;