diff --git a/src/detection/packages/packages.c b/src/detection/packages/packages.c index 4e58b506d..9e7074b2a 100644 --- a/src/detection/packages/packages.c +++ b/src/detection/packages/packages.c @@ -47,13 +47,14 @@ bool ffPackagesReadCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, const char* } uint64_t mtime_current; - if (!GetFileTime(handle, NULL, NULL, (FILETIME*) &mtime_current)) + FILE_BASIC_INFORMATION fileInfo; + IO_STATUS_BLOCK iosb; + if (!NT_SUCCESS(NtQueryInformationFile(handle, &iosb, &fileInfo, sizeof(fileInfo), FileBasicInformation))) return false; - mtime_current = (mtime_current - 116444736000000000ull) / 10000ull; + if (fileInfo.LastWriteTime.QuadPart <= 116444736000000000ull) return false; - if (__builtin_expect(mtime_current == 0, false)) - return false; + mtime_current = (fileInfo.LastWriteTime.QuadPart - 116444736000000000ull) / 10000ull; #endif ffStrbufSet(cacheDir, &instance.state.platform.cacheDir);