From dcc588967716395dfdb51be9dcd24e64145edd1b Mon Sep 17 00:00:00 2001 From: longpanda Date: Tue, 5 Apr 2022 17:37:08 +0800 Subject: [PATCH] Prevent DLL search order hijacking for VentoyPlugson.exe and VentoyVlnk.exe --- Plugson/src/main_windows.c | 56 ++++++++++++++++++ .../VentoyPlugson/Release/VentoyPlugson.exe | Bin 320000 -> 365568 bytes .../VentoyPlugson/VentoyPlugson.vcxproj | 9 ++- .../VentoyPlugson.vcxproj.filters | 2 +- Vlnk/src/main_windows.c | 54 +++++++++++++++++ Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe | Bin 121856 -> 151552 bytes .../VentoyVlnk/VentoyVlnk/VentoyVlnk.vcxproj | 7 ++- 7 files changed, 122 insertions(+), 6 deletions(-) diff --git a/Plugson/src/main_windows.c b/Plugson/src/main_windows.c index e6a0bf47a0f..066eb63bfd9 100644 --- a/Plugson/src/main_windows.c +++ b/Plugson/src/main_windows.c @@ -464,6 +464,60 @@ static int ParseCmdLine(LPSTR lpCmdLine, char *ip, char *port) return 0; } + + +// +//copy from Rufus +// +#include +// For delay-loaded DLLs, use LOAD_LIBRARY_SEARCH_SYSTEM32 to avoid DLL search order hijacking. +FARPROC WINAPI dllDelayLoadHook(unsigned dliNotify, PDelayLoadInfo pdli) +{ + if (dliNotify == dliNotePreLoadLibrary) { + // Windows 7 without KB2533623 does not support the LOAD_LIBRARY_SEARCH_SYSTEM32 flag. + // That is is OK, because the delay load handler will interrupt the NULL return value + // to mean that it should perform a normal LoadLibrary. + return (FARPROC)LoadLibraryExA(pdli->szDll, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); + } + return NULL; +} + +#if defined(_MSC_VER) +// By default the Windows SDK headers have a `const` while MinGW does not. +const +#endif +PfnDliHook __pfnDliNotifyHook2 = dllDelayLoadHook; + +typedef BOOL(WINAPI* SetDefaultDllDirectories_t)(DWORD); +static void DllProtect(void) +{ + SetDefaultDllDirectories_t pfSetDefaultDllDirectories = NULL; + + // Disable loading system DLLs from the current directory (sideloading mitigation) + // PS: You know that official MSDN documentation for SetDllDirectory() that explicitly + // indicates that "If the parameter is an empty string (""), the call removes the current + // directory from the default DLL search order"? Yeah, that doesn't work. At all. + // Still, we invoke it, for platforms where the following call might actually work... + SetDllDirectoryA(""); + + // For libraries on the KnownDLLs list, the system will always load them from System32. + // For other DLLs we link directly to, we can delay load the DLL and use a delay load + // hook to load them from System32. Note that, for this to work, something like: + // 'somelib.dll;%(DelayLoadDLLs)' must be added to the 'Delay Loaded Dlls' option of + // the linker properties in Visual Studio (which means this won't work with MinGW). + // For all other DLLs, use SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_SYSTEM32). + // Finally, we need to perform the whole gymkhana below, where we can't call on + // SetDefaultDllDirectories() directly, because Windows 7 doesn't have the API exposed. + // Also, no, Coverity, we never need to care about freeing kernel32 as a library. + // coverity[leaked_storage] + + pfSetDefaultDllDirectories = (SetDefaultDllDirectories_t) + GetProcAddress(LoadLibraryW(L"kernel32.dll"), "SetDefaultDllDirectories"); + if (pfSetDefaultDllDirectories != NULL) + pfSetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_SYSTEM32); +} + + int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) { int rc; @@ -472,6 +526,8 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi UNREFERENCED_PARAMETER(hPrevInstance); + DllProtect(); + if (GetUserDefaultUILanguage() == 0x0804) { g_sysinfo.language = LANGUAGE_CN; diff --git a/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe b/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe index 4f78da8193b61a2759538f9d779971cf220d8f90..ed09c29e8ab87fd5e7c385df7ec911f60bb025af 100644 GIT binary patch literal 365568 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%0DW~s1gv^|f&bZl>&L$#{@>?>WD1B+ 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