试图理解Windows时间戳。。。。
我所处的情况涉及手动重建原始数据,以包括MFT记录和其他Windows工件。据我所知,MFT记录中的时间戳是64位整数,大端数,由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算得出。我还熟悉Windows电子邮件头时间戳,它由两个32位值组成,组合形成一个64位值,也由UTC 01/01/1601 00:00:00以来的100纳秒间隔数计算试图理解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年代的日期。我找不到关于所
但是还有其他具有不同时代的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时间戳的参考是: