From aa051b662e3a0e8c80e7b6373d35e22da3c42d79 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 26 Aug 2023 17:08:27 +0200 Subject: Fixed detection and loading of program linked with glibc 2.34+ --- src/elfs/elfparser.c | 17 ++++++++++++++++- src/include/elfloader.h | 1 + src/main.c | 6 +++--- 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/elfs/elfparser.c b/src/elfs/elfparser.c index 1701378f..61799dae 100644 --- a/src/elfs/elfparser.c +++ b/src/elfs/elfparser.c @@ -466,4 +466,19 @@ const char* GetNeededVersionString(elfheader_t* h, const char* libname, int idx) } } return NULL; -} \ No newline at end of file +} + +int GetNeededVersionForLib(elfheader_t* h, const char* libname, const char* ver) +{ + if(!libname || !ver) + return 0; + int n = GetNeededVersionCnt(h, libname); + if(!n) + return 0; + for(int i=0; imaplib, GetMapSymbols(elf_header), GetWeakSymbols(elf_header), GetLocalSymbols(elf_header), elf_header); - box64_isglibc234 = GetVersionIndice(elf_header, "GLIBC_2.34")?1:0; - if(box64_isglibc234) - printf_log(LOG_DEBUG, "Program linked with GLIBC 2.34+\n"); if(wine_preloaded) { uintptr_t wineinfo = FindSymbol(GetMapSymbols(elf_header), "wine_main_preload_info", -1, NULL, 1, NULL); if(!wineinfo) wineinfo = FindSymbol(GetWeakSymbols(elf_header), "wine_main_preload_info", -1, NULL, 1, NULL); -- cgit 1.4.1