| 291 | } |
| 292 | |
| 293 | void PrintUnixTimestamp(int64_t originalTs) { |
| 294 | int64_t msTs = AdjustToMilliseconds(originalTs); |
| 295 | if (msTs < 0) { |
| 296 | printf("Invalid timestamp: %lld\n", originalTs); |
| 297 | return; |
| 298 | } |
| 299 | const int64_t EPOCH_DIFF_MS = 11644473600000LL; |
| 300 | ULONGLONG fileTimeTicks = (msTs + EPOCH_DIFF_MS) * 10000; |
| 301 | |
| 302 | FILETIME fileTimeUTC; |
| 303 | fileTimeUTC.dwLowDateTime = static_cast<DWORD>(fileTimeTicks & 0xFFFFFFFF); |
| 304 | fileTimeUTC.dwHighDateTime = static_cast<DWORD>(fileTimeTicks >> 32); |
| 305 | |
| 306 | FILETIME fileTimeLocal; |
| 307 | SYSTEMTIME systemTime; |
| 308 | |
| 309 | FileTimeToLocalFileTime(&fileTimeUTC, &fileTimeLocal); |
| 310 | FileTimeToSystemTime(&fileTimeLocal, &systemTime); |
| 311 | |
| 312 | printf("%04hu-%02hu-%02hu %02hu:%02hu:%02hu.%03hu\n", |
| 313 | systemTime.wYear, systemTime.wMonth, systemTime.wDay, |
| 314 | systemTime.wHour, systemTime.wMinute, systemTime.wSecond, |
| 315 | systemTime.wMilliseconds); |
| 316 | } |
| 317 | |
| 318 | void PrintValuesChrome(CanonicalCookieChrome cookie, HANDLE hProcess) { |
| 319 | PRINT(" Name: "); |
no test coverage detected