From 85c0549a63563192276cef6418c278484d9878ca Mon Sep 17 00:00:00 2001 From: sdottaka Date: Mon, 6 Sep 2010 00:03:32 +0900 Subject: [PATCH] Prevent DLL hijacking --- Src/Merge.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Src/Merge.cpp b/Src/Merge.cpp index a5bf00c0b..339ad6c3b 100644 --- a/Src/Merge.cpp +++ b/Src/Merge.cpp @@ -175,6 +175,15 @@ CMergeApp theApp; */ BOOL CMergeApp::InitInstance() { + // Prevents DLL hijacking + HMODULE hLibrary = GetModuleHandle(_T("kernel32.dll")); + BOOL (WINAPI *pfnSetSearchPathMode)(DWORD) = (BOOL (WINAPI *)(DWORD))GetProcAddress(hLibrary, "SetSearchPathMode"); + if (pfnSetSearchPathMode) + pfnSetSearchPathMode(0x00000001L /*BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE*/ | 0x00008000L /*BASE_SEARCH_PATH_PERMANENT*/); + BOOL (WINAPI *pfnSetDllDirectoryA)(LPCSTR) = (BOOL (WINAPI *)(LPCSTR))GetProcAddress(hLibrary, "SetDllDirectoryA"); + if (pfnSetDllDirectoryA) + pfnSetDllDirectoryA(""); + InitCommonControls(); // initialize common control library CWinApp::InitInstance(); // call parent class method -- 2.11.0