From db9cfb8e29e56b5e3f8cab687b228597e17d8460 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Mon, 23 Sep 2024 15:21:32 +0200 Subject: [PATCH] add crc32 to logs --- inc/utils.h | 1 + src/debug.c | 2 ++ src/utils.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/inc/utils.h b/inc/utils.h index c710966..9f7f0ee 100644 --- a/inc/utils.h +++ b/inc/utils.h @@ -7,6 +7,7 @@ HMODULE WINAPI util_enumerate_modules(_In_opt_ HMODULE hModuleLast); void util_pull_messages(); +unsigned long util_get_crc32(char* filename); DWORD util_get_timestamp(HMODULE mod); FARPROC util_get_iat_proc(HMODULE mod, char* module_name, char* function_name); BOOL util_caller_is_ddraw_wrapper(void* return_address); diff --git a/src/debug.c b/src/debug.c index f89b924..96b1b25 100644 --- a/src/debug.c +++ b/src/debug.c @@ -202,6 +202,8 @@ void dbg_init() TRACE("Wine sysname = %s, release = %s\n", sysname, release); } + TRACE("crc32 = %08X\n", util_get_crc32(exe_path)); + DWORD timestamp = util_get_timestamp(GetModuleHandleA(NULL)); if (timestamp) { diff --git a/src/utils.c b/src/utils.c index 3f22bb7..fd8a524 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,5 +1,6 @@ #include #include +#include #include #include "ddraw.h" #include "debug.h" @@ -11,6 +12,7 @@ #include "utils.h" #include "config.h" #include "versionhelpers.h" +#include "crc32.h" /* @@ -105,6 +107,34 @@ DWORD util_get_timestamp(HMODULE mod) return nt_headers->FileHeader.TimeDateStamp; } +unsigned long util_get_crc32(char* filename) +{ + if (!filename) + return 0; + + unsigned long crc32 = 0; + + FILE* fp = fopen(filename, "rb"); + if (fp) + { + char buf[1024]; + for (size_t s = 0; (s = fread(buf, 1, sizeof(buf), fp));) + { + if (ferror(fp)) + { + crc32 = 0; + break; + } + + crc32 = Crc32_ComputeBuf(crc32, buf, s); + } + + fclose(fp); + } + + return crc32; +} + FARPROC util_get_iat_proc(HMODULE mod, char* module_name, char* function_name) { if (!mod || mod == INVALID_HANDLE_VALUE)