我正在用Windbg在Windows(x64)内核上做一些反向操作。 我尝试确定由以下字节表示的结构:
0e 00 10 00 00 00 00 00 – 90 db fe db 12 00 00 00
我假设:
kd> d 12dbfedb90
00000012`dcec7210 63 00 6f 00 75 00 6e – 00 74 00 72 00 79 00 00 country
所以我认为原来的结构如下所示:
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
其中您的dwReserved
是PCHAR 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;