c++ - 如何识别这个结构体中mYear元素的含义?

标签 c++ c windows time struct

我对 Windows SYSTEMTIME 结构描述和解释有一些疑问

Windwos的SYSTEMTIME结构是这样的

typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;

而MSDN对wYear的解释是这样的

The year. The valid values for this member are 1601 through 30827.

现在我得到一个 SYSTEMTIME 结构和 wYear=834h

我怎么知道对应年份是多少?


注意:

问:你是怎么得到这个 SYSTEMTIME 的?

答:我正在用IDA pro对病毒进行逆向分析,这个结构是从病毒的汇编代码中推导出来的


问:没有神奇的偏移量,它从 0 开始。你有垃圾数据

答:我确定这不是垃圾数据,因为这个值是人为给定的,汇编源代码如下所示mov [esp+40Ch+SystemTime.wYear], 834h

最佳答案

wYear=2001 represents the time in 2001

wYear=1989 represents the time in 1989

这就是答案,我在计算十六进制到十进制时犯了一个数学错误,抱歉各位~

秋天快乐~😘

关于c++ - 如何识别这个结构体中mYear元素的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46318868/

相关文章:

c++ - C++ 中的基本类型有析构函数吗?

c - 如果发生错误,我应该关闭(文件)吗?

python - 如何从文件夹中的文件中删除行?

c - 结构,malloc ..我再困惑不过了

c++ - 在 Windows 中实现 "do not disturb/distract me"模式

Windows 批处理脚本提供参数

c++ - 在 Visual Studio 中对齐代码/代码边距

c++ - 将构建配置从 cmake 链接切换到 boost 库的正确版本

c++ - 删除获取 AccessViolationException 的指针

无法编译 mongo-c-driver 示例