试图理解Windows时间戳。。。。

试图理解Windows时间戳。。。。,windows,timestamp,computer-forensics,Windows,Timestamp,Computer Forensics,我所处的情况涉及手动重建原始数据,以包括MFT记录和其他Windows工件。据我所知,MFT记录中的时间戳是64位整数,大端数,由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算得出。我还熟悉Windows电子邮件头时间戳,它由两个32位值组成,组合形成一个64位值,也由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算 但是还有其他具有不同时代的Windows时间戳,例如SQL Server时间戳,我相信它使用的是1800年代的日期。我找不到关于所

我所处的情况涉及手动重建原始数据,以包括MFT记录和其他Windows工件。据我所知,MFT记录中的时间戳是64位整数,大端数,由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算得出。我还熟悉Windows电子邮件头时间戳,它由两个32位值组成,组合形成一个64位值,也由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算


但是还有其他具有不同时代的Windows时间戳,例如SQL Server时间戳,我相信它使用的是1800年代的日期。我找不到关于所有这些的很多文档。除了上面列出的两个时间戳之外,Windows中使用了哪些时间戳?如何分解它们?

以下是一些解码Windows时间戳的代码:

static string microsoftDateToISODate(const uint64_t &time) {
/**
 * See comment above for more information on
 * SECONDS_BETWEEN_WIN32_EPOCH_AND_UNIX_EPOCH 
 *
 * Convert UNIX time_t to ISO8601 format
 */
time_t tmp = (time / ONE_HUNDRED_NANO_SEC_TO_SECONDS)
    - SECONDS_BETWEEN_WIN32_EPOCH_AND_UNIX_EPOCH;

struct tm time_tm;
gmtime_r(&tmp, &time_tm);
char buf[256];
strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", &time_tm);
return string(buf);
}
您对Mac时间戳的参考是:


    • 以下是一些解码Windows时间戳的代码:

      static string microsoftDateToISODate(const uint64_t &time) {
      /**
       * See comment above for more information on
       * SECONDS_BETWEEN_WIN32_EPOCH_AND_UNIX_EPOCH 
       *
       * Convert UNIX time_t to ISO8601 format
       */
      time_t tmp = (time / ONE_HUNDRED_NANO_SEC_TO_SECONDS)
          - SECONDS_BETWEEN_WIN32_EPOCH_AND_UNIX_EPOCH;
      
      struct tm time_tm;
      gmtime_r(&tmp, &time_tm);
      char buf[256];
      strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", &time_tm);
      return string(buf);
      }
      
      您对Mac时间戳的参考是:


      看一看。这很有帮助,谢谢。除了Mac绝对时间,你知道有什么好的Mac时间参考吗?我从来没有在Mac上工作过,所以我不能给你任何有用的建议(看一看。这很有帮助,谢谢。除了Mac绝对时间之外,你知道有什么好的Mac时间参考吗?我从未在Mac上工作过,所以我不能给你任何有用的建议。:(感谢Mac链接,如果你注意到的话,我写了你链接到的堆栈溢出参考;)我真的不知道该如何处理这段代码。我的目标是理解时间戳是如何工作的。我真的不明白我在你的代码中看到了什么。最终的目标是完成这个wiki:然后用python编写一个多平台工具来解码所有这些时间戳。因此,我必须理解它们背后的数学,而不是just依靠各种语言的系统函数来实现这一点。感谢您的帮助,我对此表示感谢。但是,理解所有这些格式的任何帮助都将非常有帮助。我理解我的问题中的那些格式,我的目标是理解其他类型的Windows时间戳,例如SQL Server中使用的时间戳。您在哪里遇到这些格式其他时间戳?我正在Windows计算机上从未分配的空间中雕刻/重建数据。我注意到SQL使用DB/DT_时间戳()大部分是人类可读的,但是DOS、CLR系统时间等呢?寻找Windows操作系统在不同地方可能遇到的多种类型的时间戳的解释。主要是我目前不知道的时间戳。感谢Mac链接,如果你注意到的话,我写了你链接到的堆栈溢出参考;)我真的不知道如何处理这段代码。我的目标是了解时间戳是如何工作的。我真的不明白我在你的代码中看到了什么。最终的目标是完成这个wiki:然后用python编写一个多平台工具来解码所有这些时间戳。因此,我必须理解它们背后的数学原理,而不是仅仅依靠各种语言的系统函数来实现这一点。谢谢你的帮助,我很感激。但是,理解所有这些格式的任何帮助都将非常有用。我理解我问题中的那些格式,我的目标是理解其他类型的Windows时间戳,例如SQL Server中使用的时间戳。您在哪里遇到其他时间戳?我正在Windows计算机上从未分配的空间中雕刻/重建数据。我注意到SQL使用DB/DT_TIMESTAMP(),这大部分是人类可读的,但是DOS、CLR系统时间等呢。?寻找Windows操作系统中不同位置可能遇到的多种时间戳类型的解释。主要是我目前不知道的。