From 6f2b1400606eb109853a8a099ff8d18e8f524de3 Mon Sep 17 00:00:00 2001 From: zeffy Date: Thu, 1 Mar 2018 14:49:11 -0800 Subject: [PATCH] migrate to minhook and begin adding crash loop prevention --- README.md | 3 +- inc/minhook/minhook.h | 184 +++++++++++++ lib/minhook/libMinHook.x64.MT.lib | Bin 0 -> 374042 bytes lib/minhook/libMinHook.x64.MTd.lib | Bin 0 -> 113600 bytes lib/minhook/libMinHook.x86.MT.lib | Bin 0 -> 350674 bytes lib/minhook/libMinHook.x86.MTd.lib | Bin 0 -> 101758 bytes src/wufuc/callbacks.c | 175 +++++------- src/wufuc/callbacks.h | 4 +- src/wufuc/context.c | 337 ++++++++++++++++++++++++ src/wufuc/context.h | 71 +++++ src/wufuc/dllmain.c | 4 + src/wufuc/hlpmem.c | 291 -------------------- src/wufuc/hlpmem.h | 44 ---- src/wufuc/hlpmisc.c | 155 ----------- src/wufuc/hlpmisc.h | 27 -- src/wufuc/hlpsvc.h | 23 -- src/wufuc/hlpver.h | 6 - src/wufuc/hooks.c | 27 +- src/wufuc/hooks.h | 5 +- src/wufuc/log.c | 292 ++++++++++++++++++++ src/wufuc/log.h | 6 + src/wufuc/modulehelper.c | 151 +++++++++++ src/wufuc/modulehelper.h | 15 ++ src/wufuc/registryhelper.c | 119 +++++++++ src/wufuc/registryhelper.h | 20 ++ src/wufuc/rundll32.c | 61 ++--- src/wufuc/{hlpsvc.c => servicehelper.c} | 44 ++-- src/wufuc/servicehelper.h | 23 ++ src/wufuc/stdafx.h | 4 - src/wufuc/tracing.c | 234 ---------------- src/wufuc/tracing.h | 15 -- src/wufuc/{hlpver.c => versionhelper.c} | 29 +- src/wufuc/versionhelper.h | 8 + src/wufuc/wufuc.c | 126 +++++++++ src/wufuc/wufuc.h | 12 + src/wufuc/wufuc.vcxproj | 52 ++-- src/wufuc/wufuc.vcxproj.filters | 40 ++- 37 files changed, 1562 insertions(+), 1045 deletions(-) create mode 100644 inc/minhook/minhook.h create mode 100644 lib/minhook/libMinHook.x64.MT.lib create mode 100644 lib/minhook/libMinHook.x64.MTd.lib create mode 100644 lib/minhook/libMinHook.x86.MT.lib create mode 100644 lib/minhook/libMinHook.x86.MTd.lib create mode 100644 src/wufuc/context.c create mode 100644 src/wufuc/context.h delete mode 100644 src/wufuc/hlpmem.c delete mode 100644 src/wufuc/hlpmem.h delete mode 100644 src/wufuc/hlpmisc.c delete mode 100644 src/wufuc/hlpmisc.h delete mode 100644 src/wufuc/hlpsvc.h delete mode 100644 src/wufuc/hlpver.h create mode 100644 src/wufuc/log.c create mode 100644 src/wufuc/log.h create mode 100644 src/wufuc/modulehelper.c create mode 100644 src/wufuc/modulehelper.h create mode 100644 src/wufuc/registryhelper.c create mode 100644 src/wufuc/registryhelper.h rename src/wufuc/{hlpsvc.c => servicehelper.c} (79%) create mode 100644 src/wufuc/servicehelper.h delete mode 100644 src/wufuc/tracing.c delete mode 100644 src/wufuc/tracing.h rename src/wufuc/{hlpver.c => versionhelper.c} (76%) create mode 100644 src/wufuc/versionhelper.h create mode 100644 src/wufuc/wufuc.c create mode 100644 src/wufuc/wufuc.h diff --git a/README.md b/README.md index 20b4c3c..884b0d3 100644 --- a/README.md +++ b/README.md @@ -103,8 +103,9 @@ Advanced Installer's intuitive and friendly user interface allowed me to quickly ## Special thanks -- Wen Jia Liu ([@wj32](https://github.com/wj32)) for his awesome program [Process Hacker](https://github.com/processhacker2/processhacker) which has been absolutely instrumental in the development of wufuc, and also for his [`phnt`](https://github.com/processhacker2/processhacker/tree/master/phnt) headers. +- Wen Jia Liu ([@wj32](https://github.com/wj32)) for his awesome program [Process Hacker](https://github.com/processhacker2/processhacker), and also for his [`phnt` headers](https://github.com/processhacker2/processhacker/tree/master/phnt). - Duncan Ogilvie ([@mrexodia](https://github.com/mrexodia)) for his [`patternfind.cpp`](https://github.com/x64dbg/x64dbg/blob/development/src/dbg/patternfind.cpp) algorithm from [x64dbg](https://github.com/x64dbg/x64dbg). +- Tsuda Kageyu ([@TsudaKageyu](https://github.com/TsudaKageyu)) for his excellent [minhook](https://github.com/TsudaKageyu/minhook) library. [Latest]: https://github.com/zeffy/wufuc/releases/latest [AppVeyor]: https://ci.appveyor.com/project/zeffy/wufuc diff --git a/inc/minhook/minhook.h b/inc/minhook/minhook.h new file mode 100644 index 0000000..9f62e33 --- /dev/null +++ b/inc/minhook/minhook.h @@ -0,0 +1,184 @@ +/* + * MinHook - The Minimalistic API Hooking Library for x64/x86 + * Copyright (C) 2009-2017 Tsuda Kageyu. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#if !(defined _M_IX86) && !(defined _M_X64) && !(defined __i386__) && !(defined __x86_64__) + #error MinHook supports only x86 and x64 systems. +#endif + +// MinHook Error Codes. +typedef enum MH_STATUS +{ + // Unknown error. Should not be returned. + MH_UNKNOWN = -1, + + // Successful. + MH_OK = 0, + + // MinHook is already initialized. + MH_ERROR_ALREADY_INITIALIZED, + + // MinHook is not initialized yet, or already uninitialized. + MH_ERROR_NOT_INITIALIZED, + + // The hook for the specified target function is already created. + MH_ERROR_ALREADY_CREATED, + + // The hook for the specified target function is not created yet. + MH_ERROR_NOT_CREATED, + + // The hook for the specified target function is already enabled. + MH_ERROR_ENABLED, + + // The hook for the specified target function is not enabled yet, or already + // disabled. + MH_ERROR_DISABLED, + + // The specified pointer is invalid. It points the address of non-allocated + // and/or non-executable region. + MH_ERROR_NOT_EXECUTABLE, + + // The specified target function cannot be hooked. + MH_ERROR_UNSUPPORTED_FUNCTION, + + // Failed to allocate memory. + MH_ERROR_MEMORY_ALLOC, + + // Failed to change the memory protection. + MH_ERROR_MEMORY_PROTECT, + + // The specified module is not loaded. + MH_ERROR_MODULE_NOT_FOUND, + + // The specified function is not found. + MH_ERROR_FUNCTION_NOT_FOUND +} +MH_STATUS; + +// Can be passed as a parameter to MH_EnableHook, MH_DisableHook, +// MH_QueueEnableHook or MH_QueueDisableHook. +#define MH_ALL_HOOKS NULL + +#ifdef __cplusplus +extern "C" { +#endif + + // Initialize the MinHook library. You must call this function EXACTLY ONCE + // at the beginning of your program. + MH_STATUS WINAPI MH_Initialize(VOID); + + // Uninitialize the MinHook library. You must call this function EXACTLY + // ONCE at the end of your program. + MH_STATUS WINAPI MH_Uninitialize(VOID); + + // Creates a Hook for the specified target function, in disabled state. + // Parameters: + // pTarget [in] A pointer to the target function, which will be + // overridden by the detour function. + // pDetour [in] A pointer to the detour function, which will override + // the target function. + // ppOriginal [out] A pointer to the trampoline function, which will be + // used to call the original target function. + // This parameter can be NULL. + MH_STATUS WINAPI MH_CreateHook(LPVOID pTarget, LPVOID pDetour, LPVOID *ppOriginal); + + // Creates a Hook for the specified API function, in disabled state. + // Parameters: + // pszModule [in] A pointer to the loaded module name which contains the + // target function. + // pszTarget [in] A pointer to the target function name, which will be + // overridden by the detour function. + // pDetour [in] A pointer to the detour function, which will override + // the target function. + // ppOriginal [out] A pointer to the trampoline function, which will be + // used to call the original target function. + // This parameter can be NULL. + MH_STATUS WINAPI MH_CreateHookApi( + LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, LPVOID *ppOriginal); + + // Creates a Hook for the specified API function, in disabled state. + // Parameters: + // pszModule [in] A pointer to the loaded module name which contains the + // target function. + // pszTarget [in] A pointer to the target function name, which will be + // overridden by the detour function. + // pDetour [in] A pointer to the detour function, which will override + // the target function. + // ppOriginal [out] A pointer to the trampoline function, which will be + // used to call the original target function. + // This parameter can be NULL. + // ppTarget [out] A pointer to the target function, which will be used + // with other functions. + // This parameter can be NULL. + MH_STATUS WINAPI MH_CreateHookApiEx( + LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, LPVOID *ppOriginal, LPVOID *ppTarget); + + // Removes an already created hook. + // Parameters: + // pTarget [in] A pointer to the target function. + MH_STATUS WINAPI MH_RemoveHook(LPVOID pTarget); + + // Enables an already created hook. + // Parameters: + // pTarget [in] A pointer to the target function. + // If this parameter is MH_ALL_HOOKS, all created hooks are + // enabled in one go. + MH_STATUS WINAPI MH_EnableHook(LPVOID pTarget); + + // Disables an already created hook. + // Parameters: + // pTarget [in] A pointer to the target function. + // If this parameter is MH_ALL_HOOKS, all created hooks are + // disabled in one go. + MH_STATUS WINAPI MH_DisableHook(LPVOID pTarget); + + // Queues to enable an already created hook. + // Parameters: + // pTarget [in] A pointer to the target function. + // If this parameter is MH_ALL_HOOKS, all created hooks are + // queued to be enabled. + MH_STATUS WINAPI MH_QueueEnableHook(LPVOID pTarget); + + // Queues to disable an already created hook. + // Parameters: + // pTarget [in] A pointer to the target function. + // If this parameter is MH_ALL_HOOKS, all created hooks are + // queued to be disabled. + MH_STATUS WINAPI MH_QueueDisableHook(LPVOID pTarget); + + // Applies all queued changes in one go. + MH_STATUS WINAPI MH_ApplyQueued(VOID); + + // Translates the MH_STATUS to its name as a string. + const char * WINAPI MH_StatusToString(MH_STATUS status); + +#ifdef __cplusplus +} +#endif + diff --git a/lib/minhook/libMinHook.x64.MT.lib b/lib/minhook/libMinHook.x64.MT.lib new file mode 100644 index 0000000000000000000000000000000000000000..9bed8ad309107a6cd9fd8b017872a9430f1338e0 GIT binary patch literal 374042 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
    u}#D$`VlS5}p5KKBr%7TZpbd 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 literal 0 HcmV?d00001 diff --git a/lib/minhook/libMinHook.x86.MT.lib b/lib/minhook/libMinHook.x86.MT.lib new file mode 100644 index 0000000000000000000000000000000000000000..8a9d7f3c89cc1c6c0c502f105ad556a96391aca8 GIT binary patch literal 350674 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 + +VOID CALLBACK cb_service_notify(PSERVICE_NOTIFYW pNotifyBuffer) { switch ( pNotifyBuffer->dwNotificationStatus ) { case ERROR_SUCCESS: if ( pNotifyBuffer->ServiceStatus.dwProcessId ) - wufuc_InjectLibrary( + wufuc_inject( pNotifyBuffer->ServiceStatus.dwProcessId, - (ContextHandles *)pNotifyBuffer->pContext); + (LPTHREAD_START_ROUTINE)cb_start, + (context *)pNotifyBuffer->pContext); break; case ERROR_SERVICE_MARKED_FOR_DELETE: - SetEvent(((ContextHandles *)pNotifyBuffer->pContext)->hUnloadEvent); + SetEvent(((context *)pNotifyBuffer->pContext)->uevent); break; } if ( pNotifyBuffer->pszServiceNames ) LocalFree((HLOCAL)pNotifyBuffer->pszServiceNames); } -DWORD WINAPI PipeLoopThreadCallback(LPVOID pParam) +DWORD WINAPI cb_start(context *ctx) { - HANDLE hPipe = (HANDLE)pParam; - BOOL fSuccess; - wchar_t chBuf[512]; - while (true) { - // Read from the pipe. - - fSuccess = ReadFile( - hPipe, // pipe handle - chBuf, // buffer to receive reply - BUFSIZE * sizeof(wchar_t), // size of buffer - &cbRead, // number of bytes read - NULL); // not overlapped - - if ( !fSuccess && GetLastError() != ERROR_MORE_DATA ) - break;; - - _tprintf(TEXT("\"%s\"\n"), chBuf); - } -} - -DWORD WINAPI StartThreadCallback(LPVOID pParam) -{ - ContextHandles ctx; SC_HANDLE hSCM; SC_HANDLE hService; DWORD dwProcessId; @@ -54,22 +38,17 @@ DWORD WINAPI StartThreadCallback(LPVOID pParam) DWORD dwServiceType; wchar_t *str; HMODULE hModule; - wchar_t Filename[MAX_PATH]; DWORD result; // get mutex and unload event handles from virtual memory - if ( !pParam ) { + if ( !ctx ) { trace(L"Context parameter is null!"); goto unload; } - ctx = *(ContextHandles *)pParam; - if ( !VirtualFree(pParam, 0, MEM_RELEASE) ) - trace(L"Failed to free context parameter. (%p, GetLastError=%lu)", - pParam, GetLastError()); - // acquire child mutex, should be immediate. - if ( WaitForSingleObject(ctx.hChildMutex, 5000) != WAIT_OBJECT_0 ) { - trace(L"Failed to acquire child mutex within five seconds. (%p)", ctx.hChildMutex); + // acquire child mutex, this should be immediate. + if ( WaitForSingleObject(ctx->handles[ctx->mutex_tag], 5000) != WAIT_OBJECT_0 ) { + trace(L"Failed to acquire child mutex within five seconds. (%p)", ctx->handles[ctx->mutex_tag]); goto close_handles; } @@ -79,112 +58,78 @@ DWORD WINAPI StartThreadCallback(LPVOID pParam) goto release; } - hService = OpenServiceW(hSCM, L"wuauserv", SERVICE_QUERY_STATUS | SERVICE_QUERY_CONFIG); - dwProcessId = HeuristicServiceProcessId(hSCM, hService); - pServiceConfig = QueryServiceConfigAlloc(hSCM, hService, NULL); + hService = OpenServiceW(hSCM, L"wuauserv", + SERVICE_QUERY_STATUS | SERVICE_QUERY_CONFIG); + dwProcessId = svc_heuristic_process_id(hSCM, hService); + pServiceConfig = svc_query_config_alloc(hSCM, hService, NULL); dwServiceType = pServiceConfig->dwServiceType; free(pServiceConfig); CloseServiceHandle(hService); CloseServiceHandle(hSCM); if ( dwProcessId != GetCurrentProcessId() ) { - trace(L"Injected into wrong process!", GetCurrentProcessId(), dwProcessId); + trace(L"Injected into wrong process!"); goto release; } - trace(L"Installing hooks..."); - if ( dwServiceType == SERVICE_WIN32_SHARE_PROCESS ) { - DetourTransactionBegin(); - DetourUpdateThread(GetCurrentThread()); - // assume wuaueng.dll hasn't been loaded yet, apply // RegQueryValueExW hook to fix incompatibility with - // UpdatePack7R2 and other patches that work by - // modifying the Windows Update ServiceDll path in the - // registry. - g_pfnRegQueryValueExW = DetourFindFunction("kernel32.dll", "RegQueryValueExW"); - if ( g_pfnRegQueryValueExW ) - DetourAttach(&(PVOID)g_pfnRegQueryValueExW, RegQueryValueExW_hook); - DetourTransactionCommit(); + // UpdatePack7R2 and other patches that modify the + // Windows Update ServiceDll path in the registry. + MH_CreateHookApi(L"kernel32.dll", + "RegQueryValueExW", + RegQueryValueExW_hook, + &(PVOID)g_pfnRegQueryValueExW); + MH_EnableHook(g_pfnRegQueryValueExW); } // query the ServiceDll path after applying our compat hook so that it // is correct - str = (wchar_t *)RegQueryValueExAlloc(HKEY_LOCAL_MACHINE, + str = (wchar_t *)reg_query_value_alloc(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\services\\wuauserv\\Parameters", L"ServiceDll", NULL, NULL); - g_pszWUServiceDll = ExpandEnvironmentStringsAlloc(str, NULL); + g_pszWUServiceDll = env_expand_strings_alloc(str, NULL); free(str); - DetourTransactionBegin(); - DetourUpdateThread(GetCurrentThread()); + MH_CreateHookApi(L"kernel32.dll", + "LoadLibraryExW", + LoadLibraryExW_hook, + &(PVOID)g_pfnLoadLibraryExW); - g_pfnLoadLibraryExW = DetourFindFunction("kernel32.dll", "LoadLibraryExW"); - if ( g_pfnLoadLibraryExW ) - DetourAttach(&(PVOID)g_pfnLoadLibraryExW, LoadLibraryExW_hook); + if ( g_pszWUServiceDll + && (GetModuleHandleExW(0, g_pszWUServiceDll, &hModule) + || GetModuleHandleExW(0, PathFindFileNameW(g_pszWUServiceDll), &hModule))) { - if ( g_pszWUServiceDll ) { - if ( GetModuleHandleExW(0, g_pszWUServiceDll, &hModule) ) { - if ( FindIDSFunctionAddress(hModule, &(PVOID)g_pfnIsDeviceServiceable) ) { - trace(L"Matched pattern for %ls!IsDeviceServiceable. (%p)", - PathFindFileNameW(g_pszWUServiceDll), - g_pfnIsDeviceServiceable); - DetourAttach(&(PVOID)g_pfnIsDeviceServiceable, IsDeviceServiceable_hook); - } else { - trace(L"No pattern matched!"); - } - FreeLibrary(hModule); - } + // hook IsDeviceServiceable if wuaueng.dll is already loaded + wufuc_hook(hModule); + FreeLibrary(hModule); } - DetourTransactionCommit(); + MH_EnableHook(MH_ALL_HOOKS); // wait for unload event or parent mutex to be abandoned. // for example if the user killed rundll32.exe with task manager. - // intentionally leave parent mutex open until this thread ends, at - // which point it becomes abandoned again. - result = WaitForMultipleObjects(_countof(ctx.handles), ctx.handles, FALSE, INFINITE); + result = WaitForMultipleObjects(_countof(ctx->handles), ctx->handles, FALSE, INFINITE); trace(L"Unload condition has been met."); - // unhook - if ( g_pfnLoadLibraryExW || g_pfnIsDeviceServiceable || g_pfnRegQueryValueExW ) { - trace(L"Removing hooks..."); - DetourTransactionBegin(); - DetourUpdateThread(GetCurrentThread()); - - if ( g_pfnLoadLibraryExW ) - DetourDetach(&(PVOID)g_pfnLoadLibraryExW, LoadLibraryExW_hook); - - // check to see if the last known address of IsDeviceServiceable - // is still in the address space of wuaueng.dll before - // attempting to unhook the function. - if ( g_pfnIsDeviceServiceable - && GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, - (LPWSTR)g_pfnIsDeviceServiceableLastKnown, &hModule) ) { - - if ( GetModuleFileNameW(hModule, Filename, _countof(Filename)) - && (!_wcsicmp(Filename, g_pszWUServiceDll) - || !_wcsicmp(Filename, PathFindFileNameW(g_pszWUServiceDll))) ) - DetourDetach(&(PVOID)g_pfnIsDeviceServiceable, IsDeviceServiceable_hook); - FreeLibrary(hModule); - } - if ( g_pfnRegQueryValueExW ) - DetourDetach(&(PVOID)g_pfnRegQueryValueExW, RegQueryValueExW_hook); - - DetourTransactionCommit(); + switch ( result ) { + case ERROR_ABANDONED_WAIT_0: + ReleaseMutex(ctx->mutex); + break; } - free(g_pszWUServiceDll); + MH_DisableHook(MH_ALL_HOOKS); + free(g_pszWUServiceDll); release: - ReleaseMutex(ctx.hChildMutex); + ReleaseMutex(ctx->handles[ctx->mutex_tag]); close_handles: - CloseHandle(ctx.hChildMutex); - CloseHandle(ctx.hUnloadEvent); - CloseHandle(ctx.hParentMutex); - if ( g_hTracingMutex ) - CloseHandle(g_hTracingMutex); + CloseHandle(ctx->handles[ctx->mutex_tag]); + CloseHandle(ctx->mutex); + CloseHandle(ctx->uevent); + VirtualFree(ctx, 0, MEM_RELEASE); unload: - trace(L"Freeing library and exiting main thread."); + trace(L"Freeing library and exiting thread."); FreeLibraryAndExitThread(PIMAGEBASE, 0); } + diff --git a/src/wufuc/callbacks.h b/src/wufuc/callbacks.h index 815ed13..367c101 100644 --- a/src/wufuc/callbacks.h +++ b/src/wufuc/callbacks.h @@ -1,4 +1,4 @@ #pragma once -VOID CALLBACK ServiceNotifyCallback(PSERVICE_NOTIFYW pNotifyBuffer); -DWORD WINAPI ThreadStartCallback(LPVOID pParam); +VOID CALLBACK cb_service_notify(PSERVICE_NOTIFYW pNotifyBuffer); +DWORD WINAPI cb_start(context *ctx); diff --git a/src/wufuc/context.c b/src/wufuc/context.c new file mode 100644 index 0000000..ffd0233 --- /dev/null +++ b/src/wufuc/context.c @@ -0,0 +1,337 @@ +#include "stdafx.h" +#include "context.h" +#include + +static bool ctxp_remove_handle(context *ctx, unsigned Index) +{ + if ( !ctx || Index > _countof(ctx->handles) || Index > ctx->count ) + return false; + + EnterCriticalSection(&ctx->cs); + for ( unsigned i = Index; i < ctx->count - 1; i++ ) { + ctx->handles[i] = ctx->handles[i + 1]; + ctx->tags[i] = ctx->tags[i + 1]; + } + LeaveCriticalSection(&ctx->cs); + return true; +} + +static bool ctxp_create_new_mutex(bool InitialOwner, + const wchar_t *MutexName, + HANDLE *pMutexHandle) +{ + HANDLE hMutex; + + hMutex = CreateMutexW(NULL, InitialOwner, MutexName); + if ( hMutex ) { + if ( GetLastError() == ERROR_ALREADY_EXISTS ) { + CloseHandle(hMutex); + return false; + } + *pMutexHandle = hMutex; + return true; + } + return false; +} + +static bool ctxp_create_new_mutex_vfmt(bool InitialOwner, + HANDLE *pMutexHandle, + const wchar_t *const NameFormat, + va_list ArgList) +{ + wchar_t *buffer; + int ret; + bool result; + + ret = _vscwprintf(NameFormat, ArgList) + 1; + buffer = calloc(ret, sizeof *buffer); + if ( !buffer ) + return false; + + ret = vswprintf_s(buffer, ret, NameFormat, ArgList); + if ( ret == -1 ) + return false; + + result = ctxp_create_new_mutex(InitialOwner, buffer, pMutexHandle); + free(buffer); + return result; +} + +static bool ctxp_create_event_with_string_security_descriptor( + bool ManualReset, + bool InitialState, + const wchar_t *Name, + const wchar_t *StringSecurityDescriptor, + HANDLE *pEventHandle) +{ + SECURITY_ATTRIBUTES sa = { sizeof sa }; + HANDLE hEvent; + + if ( ConvertStringSecurityDescriptorToSecurityDescriptorW( + StringSecurityDescriptor, + SDDL_REVISION_1, + &sa.lpSecurityDescriptor, + NULL) ) { + + hEvent = CreateEventW(&sa, ManualReset, InitialState, Name); + if ( hEvent ) { + *pEventHandle = hEvent; + return true; + } + } + return false; +} + +static unsigned ctxp_find_handle_index(context *ctx, HANDLE Handle) +{ + unsigned result = -1; + + if ( !ctx || !Handle || Handle == INVALID_HANDLE_VALUE ) + return -1; + + EnterCriticalSection(&ctx->cs); + for ( unsigned i = 0; i < ctx->count; i++ ) { + if ( ctx->handles[i] == Handle ) { + result = i; + break; + } + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +bool ctx_create(context *ctx, + const wchar_t *MutexName, + unsigned MutexTag, + const wchar_t *EventName, + const wchar_t *EventStringSecurityDescriptor, + unsigned EventTag) +{ + bool result = false; + + if ( !ctx ) return false; + + ZeroMemory(ctx, sizeof *ctx); + InitializeCriticalSection(&ctx->cs); + EnterCriticalSection(&ctx->cs); + + if ( ctxp_create_new_mutex(true, MutexName, &ctx->mutex) ) { + ctx->mutex_tag = MutexTag; + ctx->count++; + + result = ctx_add_event(ctx, EventName, EventStringSecurityDescriptor, EventTag, NULL); + if ( !result ) { + ReleaseMutex(ctx->mutex); + ctx_close_and_remove_handle(ctx, ctx->mutex); + } + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +bool ctx_delete(context *ctx) +{ + if ( !ctx || ctx->count > _countof(ctx->handles) ) + return false; + + EnterCriticalSection(&ctx->cs); + while ( ctx->count-- ) { + CloseHandle(ctx->handles[ctx->count]); + ctx->handles[ctx->count] = INVALID_HANDLE_VALUE; + ctx->tags[ctx->count] = -1; + } + LeaveCriticalSection(&ctx->cs); + DeleteCriticalSection(&ctx->cs); + return true; +} + +unsigned ctx_add_handle(context *ctx, HANDLE Handle, unsigned Tag) +{ + unsigned result = -1; + + if ( !ctx || !Handle ) + return -1; + + EnterCriticalSection(&ctx->cs); + result = ctxp_find_handle_index(ctx, Handle); + if ( result != -1) { + ctx->tags[result] = Tag; + } else if ( ctx->count < _countof(ctx->handles) ) { + ctx->handles[ctx->count] = Handle; + ctx->tags[ctx->count] = Tag; + + result = ctx->count++; + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +bool ctx_get_tag(context *ctx, HANDLE Handle, unsigned *pTag) +{ + bool result = false; + unsigned index; + + if ( !ctx || !Handle || !pTag ) + return false; + + EnterCriticalSection(&ctx->cs); + index = ctxp_find_handle_index(ctx, Handle); + if ( index != -1 ) { + if ( pTag ) { + *pTag = ctx->tags[index]; + result = true; + } + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +unsigned ctx_add_new_mutex(context *ctx, + bool InitialOwner, + const wchar_t *Name, + unsigned Tag, + HANDLE *pMutexHandle) +{ + HANDLE hMutex; + unsigned result = -1; + + EnterCriticalSection(&ctx->cs); + if ( ctxp_create_new_mutex(InitialOwner, Name, &hMutex) ) { + result = ctx_add_handle(ctx, hMutex, Tag); + if ( result != -1 ) { + if ( pMutexHandle ) + *pMutexHandle = hMutex; + } else { + CloseHandle(hMutex); + } + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +unsigned ctx_add_new_mutex_fmt(context *ctx, + bool InitialOwner, + unsigned Tag, + HANDLE *pMutexHandle, + const wchar_t *const NameFormat, + ...) +{ + HANDLE hMutex; + unsigned result = -1; + va_list arglist; + + EnterCriticalSection(&ctx->cs); + va_start(arglist, NameFormat); + if ( ctxp_create_new_mutex_vfmt(InitialOwner, &hMutex, NameFormat, arglist) ) { + result = ctx_add_handle(ctx, hMutex, Tag); + if ( result != -1 ) { + if ( pMutexHandle ) + *pMutexHandle = hMutex; + } else { + CloseHandle(hMutex); + } + } + va_end(arglist); + LeaveCriticalSection(&ctx->cs); + return result; +} + +unsigned ctx_add_event(context *ctx, + const wchar_t *Name, + const wchar_t *StringSecurityDescriptor, + unsigned Tag, + HANDLE *pEventHandle) +{ + unsigned result = -1; + HANDLE hEvent; + + EnterCriticalSection(&ctx->cs); + if ( ctxp_create_event_with_string_security_descriptor( + true, + false, + Name, + StringSecurityDescriptor, + &hEvent) ) { + result = ctx_add_handle(ctx, hEvent, Tag); + if ( result != -1 ) { + if ( pEventHandle ) + *pEventHandle = hEvent; + } else { + CloseHandle(hEvent); + } + } + LeaveCriticalSection(&ctx->cs); + return result; +} + +bool ctx_wait(context *ctx, bool WaitAll, bool Alertable, DWORD *pResult) +{ + int ret; + unsigned count; + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + + EnterCriticalSection(&ctx->cs); + count = ctx->count; + ret = memcpy_s(handles, sizeof(handles), ctx->handles, count * (sizeof *handles)); + LeaveCriticalSection(&ctx->cs); + + if ( !ret ) { + *pResult = WaitForMultipleObjectsEx(count, + handles, + WaitAll, + INFINITE, + Alertable); + return true; + } + return false; +} + +bool ctx_close_and_remove_handle(context *ctx, + HANDLE Handle) +{ + bool result = false; + unsigned index; + + EnterCriticalSection(&ctx->cs); + index = ctxp_find_handle_index(ctx, Handle); + result = index != -1 + && CloseHandle(Handle) + && ctxp_remove_handle(ctx, index); + LeaveCriticalSection(&ctx->cs); + return result; +} + +bool ctx_duplicate_context(const context *pSrc, + HANDLE hProcess, + context *pDst, + HANDLE Handle, + DWORD DesiredAccess, + unsigned Tag) +{ + bool result = false; + HANDLE hSrcProcess; + HANDLE hTarget; + size_t index; + + hSrcProcess = GetCurrentProcess(); + + if ( !DuplicateHandle(hSrcProcess, pSrc->mutex, hProcess, &pDst->mutex, SYNCHRONIZE, FALSE, 0) ) + return false; + + if ( !DuplicateHandle(hSrcProcess, pSrc->uevent, hProcess, &pDst->uevent, SYNCHRONIZE, FALSE, 0) ) { +close_mutex: + CloseHandle(pDst->mutex); + pDst->mutex = INVALID_HANDLE_VALUE; + return false; + } + if ( !DuplicateHandle(hSrcProcess, Handle, hProcess, &hTarget, 0, FALSE, DesiredAccess) + || (index = ctx_add_handle(pDst, hTarget, Tag)) == -1 ) { + + CloseHandle(pDst->uevent); + pDst->uevent = INVALID_HANDLE_VALUE; + goto close_mutex; + + } + pDst->tags[0] = index; + return true; +} diff --git a/src/wufuc/context.h b/src/wufuc/context.h new file mode 100644 index 0000000..0de5d10 --- /dev/null +++ b/src/wufuc/context.h @@ -0,0 +1,71 @@ +#pragma once + +#pragma pack(push, 1) +typedef struct +{ + CRITICAL_SECTION cs; + unsigned count; + union + { + struct + { + HANDLE mutex; + HANDLE uevent; + }; + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + }; + union + { + struct + { + unsigned mutex_tag; + unsigned uevent_tag; + }; + unsigned tags[MAXIMUM_WAIT_OBJECTS]; + }; +} context; +#pragma pack(pop) + +bool ctx_create(context *ctx, + const wchar_t *MutexName, + unsigned MutexTag, + const wchar_t *EventName, + const wchar_t *EventStringSecurityDescriptor, + unsigned EventTag); + +bool ctx_delete(context *ctx); + +unsigned ctx_add_handle(context *ctx, HANDLE Handle, unsigned Tag); + +bool ctx_get_tag(context *ctx, HANDLE Handle, unsigned *pTag); + +unsigned ctx_add_new_mutex(context *ctx, + bool InitialOwner, + const wchar_t *Name, + unsigned Tag, + HANDLE *pMutexHandle); + +unsigned ctx_add_new_mutex_fmt(context *ctx, + bool InitialOwner, + unsigned Tag, + HANDLE *pMutexHandle, + const wchar_t *const NameFormat, + ...); + +unsigned ctx_add_event(context *ctx, + const wchar_t *Name, + const wchar_t *StringSecurityDescriptor, + unsigned Tag, + HANDLE *pEventHandle); + +bool ctx_wait(context *ctx, bool WaitAll, bool Alertable, DWORD *pResult); + +bool ctx_close_and_remove_handle(context *ctx, + HANDLE Handle); + +bool ctx_duplicate_context(const context *pSrc, + HANDLE hProcess, + context *pDst, + HANDLE Handle, + DWORD DesiredAccess, + unsigned Tag); diff --git a/src/wufuc/dllmain.c b/src/wufuc/dllmain.c index 805ba47..6612e6e 100644 --- a/src/wufuc/dllmain.c +++ b/src/wufuc/dllmain.c @@ -1,4 +1,5 @@ #include "stdafx.h" +#include BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, @@ -6,9 +7,12 @@ BOOL APIENTRY DllMain(HMODULE hModule, { switch ( ul_reason_for_call ) { case DLL_PROCESS_ATTACH: + MH_Initialize(); + break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: + MH_Uninitialize(); break; } return TRUE; diff --git a/src/wufuc/hlpmem.c b/src/wufuc/hlpmem.c deleted file mode 100644 index 2b028d4..0000000 --- a/src/wufuc/hlpmem.c +++ /dev/null @@ -1,291 +0,0 @@ -#include "stdafx.h" -#include "callbacks.h" -#include "hlpmem.h" -#include "hlpmisc.h" -#include "hlpver.h" -#include "hooks.h" - -bool FindIDSFunctionAddress(HMODULE hModule, PVOID *ppfnIsDeviceServiceable) -{ - bool result = false; - bool is_win7 = false; - bool is_win81 = false; - PLANGANDCODEPAGE ptl; - HANDLE hProcess; - int tmp; - UINT cbtl; - wchar_t SubBlock[38]; - UINT cbInternalName; - wchar_t *pInternalName; - UINT cbffi; - VS_FIXEDFILEINFO *pffi; - MODULEINFO modinfo; - size_t offset; - - if ( !((is_win7 = IsWindowsVersion(6, 1, 1)) - || (is_win81 = IsWindowsVersion(6, 3, 0))) ) { - - trace(L"Unsupported operating system."); - return result; - } - - ptl = GetVersionInfoFromHModuleAlloc(hModule, L"\\VarFileInfo\\Translation", &cbtl); - if ( !ptl ) { - trace(L"Failed to allocate version translation information from hmodule."); - return result; - } - hProcess = GetCurrentProcess(); - - for ( size_t i = 0, count = (cbtl / sizeof *ptl); i < count; i++ ) { - if ( swprintf_s(SubBlock, - _countof(SubBlock), - L"\\StringFileInfo\\%04x%04x\\InternalName", - ptl[i].wLanguage, - ptl[i].wCodePage) == -1 ) - continue; - - pInternalName = GetVersionInfoFromHModuleAlloc(hModule, SubBlock, &cbInternalName); - if ( !pInternalName ) { - trace(L"Failed to allocate version internal name from hmodule."); - continue; - } - - // identify wuaueng.dll by its resource data - tmp = _wcsicmp(pInternalName, L"wuaueng.dll"); - if ( tmp ) - trace(L"Module internal name does not match. (%ls)", pInternalName); - free(pInternalName); - if ( tmp ) - continue; - - pffi = GetVersionInfoFromHModuleAlloc(hModule, L"\\", &cbffi); - if ( !pffi ) { - trace(L"Failed to allocate version information from hmodule."); - break; - } - trace(L"Windows Update Agent version: %hu.%hu.%hu.%hu", - HIWORD(pffi->dwProductVersionMS), - LOWORD(pffi->dwProductVersionMS), - HIWORD(pffi->dwProductVersionLS), - LOWORD(pffi->dwProductVersionLS)); - - // assure wuaueng.dll is at least the minimum supported version - tmp = ((is_win7 && ProductVersionCompare(pffi, 7, 6, 7601, 23714) != -1) - || (is_win81 && ProductVersionCompare(pffi, 7, 9, 9600, 18621) != -1)); - free(pffi); - if ( !tmp ) { - trace(L"Windows Update Agent does not meet the minimum supported version."); - break; - } - if ( !GetModuleInformation(hProcess, hModule, &modinfo, sizeof modinfo) ) - break; - - offset = patternfind(modinfo.lpBaseOfDll, modinfo.SizeOfImage, -#ifdef _WIN64 - "FFF3 4883EC?? 33DB 391D???????? 7508 8B05????????" -#else - is_win7 - ? "833D????????00 743E E8???????? A3????????" - : "8BFF 51 833D????????00 7507 A1????????" -#endif - ); - if ( offset != -1 ) { - g_pfnIsDeviceServiceableLastKnown = (PVOID)((uint8_t *)modinfo.lpBaseOfDll + offset); - *ppfnIsDeviceServiceable = g_pfnIsDeviceServiceableLastKnown; - result = true; - } - break; - } - free(ptl); - return result; -} - -HANDLE GetRemoteHModuleFromTh32ModuleSnapshot(HANDLE hSnapshot, const wchar_t *pLibFileName) -{ - MODULEENTRY32W me = { sizeof me }; - if ( !Module32FirstW(hSnapshot, &me) ) - return NULL; - do { - if ( !_wcsicmp(me.szExePath, pLibFileName) ) - return me.hModule; - } while ( Module32NextW(hSnapshot, &me) ); - return NULL; -} - -bool InjectLibraryAndCreateRemoteThread( - HANDLE hProcess, - HMODULE hModule, - LPTHREAD_START_ROUTINE pStartAddress, - const void *pParam, - size_t cbParam) -{ - bool result = false; - NTSTATUS Status; - LPVOID pBaseAddress = NULL; - SIZE_T cb; - HMODULE hRemoteModule = NULL; - HANDLE hThread; - - Status = NtSuspendProcess(hProcess); - if ( !NT_SUCCESS(Status) ) return result; - - if ( pParam ) { - // this will be VirtualFree()'d by the function at pStartAddress - pBaseAddress = VirtualAllocEx(hProcess, - NULL, - cbParam, - MEM_RESERVE | MEM_COMMIT, - PAGE_READWRITE); - if ( !pBaseAddress ) goto resume; - - if ( !WriteProcessMemory(hProcess, pBaseAddress, pParam, cbParam, &cb) ) - goto vfree; - } - if ( InjectLibrary(hProcess, hModule, &hRemoteModule) ) { - hThread = CreateRemoteThread(hProcess, - NULL, - 0, - (LPTHREAD_START_ROUTINE)((uint8_t *)hRemoteModule + ((uint8_t *)pStartAddress - (uint8_t *)hModule)), - pBaseAddress, - 0, - NULL); - - if ( hThread ) { - CloseHandle(hThread); - result = true; - } - } -vfree: - if ( !result && pBaseAddress ) - VirtualFreeEx(hProcess, pBaseAddress, 0, MEM_RELEASE); -resume: NtResumeProcess(hProcess); - return result; -} - -bool InjectLibrary(HANDLE hProcess, HMODULE hModule, HMODULE *phRemoteModule) -{ - WCHAR Filename[MAX_PATH]; - DWORD nLength; - - nLength = GetModuleFileNameW(hModule, Filename, _countof(Filename)); - if ( nLength ) { - return InjectLibraryByFilename(hProcess, - Filename, - nLength, - phRemoteModule); - } - return false; -} - -bool InjectLibraryByFilename( - HANDLE hProcess, - const wchar_t *pLibFilename, - size_t cchLibFilename, - HMODULE *phRemoteModule) -{ - bool result = false; - DWORD dwProcessId; - NTSTATUS Status; - HANDLE hSnapshot; - SIZE_T nSize; - LPVOID pBaseAddress; - HANDLE hThread; - - Status = NtSuspendProcess(hProcess); - if ( !NT_SUCCESS(Status) ) return result; - - dwProcessId = GetProcessId(hProcess); - - hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); - if ( !hSnapshot ) goto resume; - - *phRemoteModule = GetRemoteHModuleFromTh32ModuleSnapshot(hSnapshot, - pLibFilename); - - CloseHandle(hSnapshot); - - // already injected... still sets *phRemoteModule - if ( *phRemoteModule ) goto resume; - - nSize = (cchLibFilename + 1) * sizeof *pLibFilename; - pBaseAddress = VirtualAllocEx(hProcess, - NULL, - nSize, - MEM_RESERVE | MEM_COMMIT, - PAGE_READWRITE); - - if ( !pBaseAddress ) goto resume; - - if ( !WriteProcessMemory(hProcess, pBaseAddress, pLibFilename, nSize, NULL) ) - goto vfree; - - hThread = CreateRemoteThread(hProcess, - NULL, - 0, - (LPTHREAD_START_ROUTINE)LoadLibraryW, - pBaseAddress, - 0, - NULL); - if ( !hThread ) goto vfree; - - WaitForSingleObject(hThread, INFINITE); - - if ( sizeof *phRemoteModule > sizeof(DWORD) ) { - hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); - if ( hSnapshot ) { - *phRemoteModule = GetRemoteHModuleFromTh32ModuleSnapshot( - hSnapshot, - pLibFilename); - - CloseHandle(hSnapshot); - result = *phRemoteModule != NULL; - } - } else { - result = GetExitCodeThread(hThread, (LPDWORD)phRemoteModule) != FALSE; - } - CloseHandle(hThread); -vfree: VirtualFreeEx(hProcess, pBaseAddress, 0, MEM_RELEASE); -resume: NtResumeProcess(hProcess); - return result; -} - -bool wufuc_InjectLibrary(DWORD dwProcessId, ContextHandles *pContext) -{ - bool result = false; - HANDLE hProcess; - wchar_t MutexName[44]; - HANDLE hChildMutex; - HANDLE hSrcProcess; - ContextHandles param = { 0 }; - - if ( swprintf_s(MutexName, _countof(MutexName), - L"Global\\%08x-7132-44a8-be15-56698979d2f3", dwProcessId) == -1 ) { - - trace(L"Failed to print mutex name to string! (%lu)", dwProcessId); - return result; - } - if ( !InitializeMutex(false, MutexName, &hChildMutex) ) { - return result; - } - hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId); - - if ( !hProcess ) { - trace(L"Failed to open target process! (GetLastError=%lu)", GetLastError()); - goto close_mutex; - }; - hSrcProcess = GetCurrentProcess(); - - if ( DuplicateHandle(hSrcProcess, pContext->hParentMutex, hProcess, ¶m.hParentMutex, SYNCHRONIZE, FALSE, 0) - && DuplicateHandle(hSrcProcess, pContext->hUnloadEvent, hProcess, ¶m.hUnloadEvent, SYNCHRONIZE, FALSE, 0) - && DuplicateHandle(hSrcProcess, hChildMutex, hProcess, ¶m.hChildMutex, 0, FALSE, DUPLICATE_SAME_ACCESS) ) { - - if ( InjectLibraryAndCreateRemoteThread(hProcess, PIMAGEBASE, ThreadStartCallback, ¶m, sizeof param) ) - trace(L"Injected into process. (%lu)", dwProcessId); - } else { - trace(L"Failed to duplicate context handles! (GetLastError=%lu", GetLastError()); - } - CloseHandle(hProcess); -close_mutex: - CloseHandle(hChildMutex); - return result; -} diff --git a/src/wufuc/hlpmem.h b/src/wufuc/hlpmem.h deleted file mode 100644 index 4734d43..0000000 --- a/src/wufuc/hlpmem.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -#pragma pack(push, 1) -typedef struct -{ - HANDLE hChildMutex; - union - { - struct - { - HANDLE hParentMutex; - HANDLE hUnloadEvent; - } DUMMYSTRUCTNAME; - struct - { - HANDLE hMainMutex; - HANDLE hUnloadEvent; - } u; - HANDLE handles[2]; - }; -} ContextHandles; -#pragma pack(pop) - -typedef struct -{ - WORD wLanguage; - WORD wCodePage; -} LANGANDCODEPAGE, *PLANGANDCODEPAGE; - -bool FindIDSFunctionAddress(HMODULE hModule, PVOID *ppfnIsDeviceServiceable); -HANDLE GetRemoteHModuleFromTh32ModuleSnapshot(HANDLE hSnapshot, const wchar_t *pLibFileName); -bool InjectLibraryAndCreateRemoteThread( - HANDLE hProcess, - HMODULE hModule, - LPTHREAD_START_ROUTINE pStartAddress, - const void *pParam, - size_t cbParam); -bool InjectLibrary(HANDLE hProcess, HMODULE hModule, HMODULE *phRemoteModule); -bool InjectLibraryByFilename( - HANDLE hProcess, - const wchar_t *pLibFilename, - size_t cchLibFilename, - HMODULE *phRemoteModule); -bool wufuc_InjectLibrary(DWORD dwProcessId, ContextHandles *pContext); diff --git a/src/wufuc/hlpmisc.c b/src/wufuc/hlpmisc.c deleted file mode 100644 index 3a2a903..0000000 --- a/src/wufuc/hlpmisc.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "stdafx.h" -#include "hlpmisc.h" -#include - -bool InitializeMutex(bool InitialOwner, const wchar_t *pMutexName, HANDLE *phMutex) -{ - HANDLE hMutex; - - hMutex = CreateMutexW(NULL, InitialOwner, pMutexName); - if ( hMutex ) { - if ( GetLastError() == ERROR_ALREADY_EXISTS ) { - CloseHandle(hMutex); - return false; - } - *phMutex = hMutex; - return true; - } else { - trace(L"Failed to create mutex: %ls (GetLastError=%ld)", - pMutexName, GetLastError()); - } - return false; -} - -bool CreateEventWithStringSecurityDescriptor( - const wchar_t *pStringSecurityDescriptor, - bool ManualReset, - bool InitialState, - const wchar_t *pName, - HANDLE *phEvent) -{ - SECURITY_ATTRIBUTES sa = { sizeof sa }; - HANDLE event; - - if ( ConvertStringSecurityDescriptorToSecurityDescriptorW( - pStringSecurityDescriptor, - SDDL_REVISION_1, - &sa.lpSecurityDescriptor, - NULL) ) { - - event = CreateEventW(&sa, ManualReset, InitialState, pName); - if ( event ) { - *phEvent = event; - return true; - } - } - return false; -} - -PVOID RegGetValueAlloc( - HKEY hkey, - const wchar_t *pSubKey, - const wchar_t *pValue, - DWORD dwFlags, - LPDWORD pdwType, - LPDWORD pcbData) -{ - DWORD cbData = 0; - PVOID result = NULL; - - if ( RegGetValueW(hkey, pSubKey, pValue, dwFlags, pdwType, NULL, &cbData) != ERROR_SUCCESS ) - return result; - - result = malloc(cbData); - if ( !result ) return result; - - if ( RegGetValueW(hkey, pSubKey, pValue, dwFlags, pdwType, result, &cbData) == ERROR_SUCCESS ) { - if ( pcbData ) - *pcbData = cbData; - } else { - free(result); - result = NULL; - } - return result; -} - -LPBYTE RegQueryValueExAlloc( - HKEY hKey, - const wchar_t *pSubKey, - const wchar_t *pValueName, - LPDWORD pType, - LPDWORD pcbData) -{ - HKEY hSubKey; - DWORD cbData = 0; - size_t length; - LPBYTE result = NULL; - - if ( pSubKey && *pSubKey ) { - if ( RegOpenKeyW(hKey, pSubKey, &hSubKey) != ERROR_SUCCESS ) - return result; - } else { - hSubKey = hKey; - } - if ( RegQueryValueExW(hSubKey, pValueName, NULL, pType, result, &cbData) != ERROR_SUCCESS ) - return result; - - length = cbData + (sizeof UNICODE_NULL * 2); - result = malloc(length); - - if ( !result ) return result; - ZeroMemory(result, length); - - if ( RegQueryValueExW(hSubKey, pValueName, NULL, pType, result, &cbData) == ERROR_SUCCESS ) { - if ( pcbData ) - *pcbData = cbData; - } else { - free(result); - result = NULL; - } - return result; -} - -PVOID NtQueryKeyAlloc( - HANDLE KeyHandle, - KEY_INFORMATION_CLASS KeyInformationClass, - PULONG pResultLength) -{ - NTSTATUS Status; - ULONG ResultLength; - PVOID result = NULL; - - Status = NtQueryKey(KeyHandle, KeyInformationClass, NULL, 0, &ResultLength); - if ( Status != STATUS_BUFFER_OVERFLOW && Status != STATUS_BUFFER_TOO_SMALL ) - return result; - - result = malloc(ResultLength); - if ( !result ) return result; - - Status = NtQueryKey(KeyHandle, KeyInformationClass, result, ResultLength, &ResultLength); - if ( NT_SUCCESS(Status) ) { - *pResultLength = ResultLength; - } else { - free(result); - result = NULL; - } - return result; -} - -wchar_t *ExpandEnvironmentStringsAlloc(const wchar_t *src, LPDWORD pcchLength) -{ - wchar_t *result; - DWORD buffersize; - DWORD size; - - buffersize = ExpandEnvironmentStringsW(src, NULL, 0); - result = calloc(buffersize, sizeof *result); - size = ExpandEnvironmentStringsW(src, result, buffersize); - if ( !size || size > buffersize ) { - free(result); - result = NULL; - } else if ( pcchLength ) { - *pcchLength = buffersize; - } - return result; -} diff --git a/src/wufuc/hlpmisc.h b/src/wufuc/hlpmisc.h deleted file mode 100644 index 37629d9..0000000 --- a/src/wufuc/hlpmisc.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -bool InitializeMutex(bool InitialOwner, const wchar_t *pMutexName, HANDLE *phMutex); -bool CreateEventWithStringSecurityDescriptor( - const wchar_t *pStringSecurityDescriptor, - bool ManualReset, - bool InitialState, - const wchar_t *pName, - HANDLE *phEvent); -PVOID RegGetValueAlloc( - HKEY hkey, - const wchar_t *pSubKey, - const wchar_t *pValue, - DWORD dwFlags, - LPDWORD pdwType, - LPDWORD pcbData); -LPBYTE RegQueryValueExAlloc( - HKEY hKey, - const wchar_t *pSubKey, - const wchar_t *pValueName, - LPDWORD pType, - LPDWORD pcbData); -PVOID NtQueryKeyAlloc( - HANDLE KeyHandle, - KEY_INFORMATION_CLASS KeyInformationClass, - PULONG pResultLength); -wchar_t *ExpandEnvironmentStringsAlloc(const wchar_t *src, LPDWORD pcchLength); diff --git a/src/wufuc/hlpsvc.h b/src/wufuc/hlpsvc.h deleted file mode 100644 index 6ab70fe..0000000 --- a/src/wufuc/hlpsvc.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -LPQUERY_SERVICE_CONFIGW QueryServiceConfigByNameAlloc( - SC_HANDLE hSCM, - const wchar_t *pServiceName, - LPDWORD pcbBufSize); -LPQUERY_SERVICE_CONFIGW QueryServiceConfigAlloc( - SC_HANDLE hSCM, - SC_HANDLE hService, - LPDWORD pcbBufSize); -bool QueryServiceStatusProcessInfoByName( - SC_HANDLE hSCM, - const wchar_t *pServiceName, - LPSERVICE_STATUS_PROCESS pServiceStatus); -bool QueryServiceGroupName( - const LPQUERY_SERVICE_CONFIGW pServiceConfig, - wchar_t **pGroupName, - HLOCAL *hMem); -DWORD QueryServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService); -DWORD QueryServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName); -DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupName); -DWORD HeuristicServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService); -DWORD HeuristicServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName); diff --git a/src/wufuc/hlpver.h b/src/wufuc/hlpver.h deleted file mode 100644 index 240c605..0000000 --- a/src/wufuc/hlpver.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -int ProductVersionCompare(VS_FIXEDFILEINFO *pffi, WORD wMajor, WORD wMinor, WORD wBuild, WORD wRev); -bool GetVersionInfoFromHModule(HMODULE hModule, const wchar_t *pszSubBlock, LPVOID pData, PUINT pcbData); -LPVOID GetVersionInfoFromHModuleAlloc(HMODULE hModule, const wchar_t *pszSubBlock, PUINT pcbData); -bool IsWindowsVersion(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor); diff --git a/src/wufuc/hooks.c b/src/wufuc/hooks.c index 6f83cc1..a3d039c 100644 --- a/src/wufuc/hooks.c +++ b/src/wufuc/hooks.c @@ -1,14 +1,16 @@ #include "stdafx.h" -#include "hlpmem.h" -#include "hlpmisc.h" + #include "hooks.h" +#include "log.h" +#include "registryhelper.h" +#include "context.h" +#include "wufuc.h" wchar_t *g_pszWUServiceDll; LPFN_REGQUERYVALUEEXW g_pfnRegQueryValueExW; LPFN_LOADLIBRARYEXW g_pfnLoadLibraryExW; LPFN_ISDEVICESERVICEABLE g_pfnIsDeviceServiceable; -LPFN_ISDEVICESERVICEABLE g_pfnIsDeviceServiceableLastKnown; LSTATUS WINAPI RegQueryValueExW_hook(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) { @@ -38,10 +40,10 @@ LSTATUS WINAPI RegQueryValueExW_hook(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpR || _wcsicmp(lpValueName, L"ServiceDll") ) return result; - pBuffer = (PWCH)lpData; + pBuffer = (wchar_t *)lpData; // get name of registry key being queried - pkni = NtQueryKeyAlloc((HANDLE)hKey, KeyNameInformation, &ResultLength); + pkni = reg_query_key_alloc((HANDLE)hKey, KeyNameInformation, &ResultLength); if ( !pkni ) return result; NameCount = pkni->NameLength / sizeof *pkni->Name; @@ -59,7 +61,7 @@ LSTATUS WINAPI RegQueryValueExW_hook(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpR || !_wcsicmp(fname, L"WuaCpuFix64.dll") // WuaCpuFix || !_wcsicmp(fname, L"WuaCpuFix.dll")) ) { - expandedpath = ExpandEnvironmentStringsAlloc(realpath, &cchLength); + expandedpath = env_expand_strings_alloc(realpath, &cchLength); if ( expandedpath ) { if ( PathFileExistsW(expandedpath) && SUCCEEDED(StringCbCopyW(pBuffer, MaximumLength, expandedpath)) ) { @@ -87,18 +89,7 @@ HMODULE WINAPI LoadLibraryExW_hook(LPCWSTR lpFileName, HANDLE hFile, DWORD dwFla && (!_wcsicmp(lpFileName, g_pszWUServiceDll) || !_wcsicmp(lpFileName, PathFindFileNameW(g_pszWUServiceDll))) ) { - if ( FindIDSFunctionAddress(result, &(PVOID)g_pfnIsDeviceServiceable) ) { - trace(L"Matched pattern for %ls!IsDeviceServiceable. (%p)", - PathFindFileNameW(lpFileName), - g_pfnIsDeviceServiceable); - - DetourTransactionBegin(); - DetourUpdateThread(GetCurrentThread()); - DetourAttach(&(PVOID)g_pfnIsDeviceServiceable, IsDeviceServiceable_hook); - DetourTransactionCommit(); - } else if ( !g_pfnIsDeviceServiceable ) { - trace(L"No pattern matched!"); - } + wufuc_hook(result); } return result; } diff --git a/src/wufuc/hooks.h b/src/wufuc/hooks.h index e752d34..3fb53c3 100644 --- a/src/wufuc/hooks.h +++ b/src/wufuc/hooks.h @@ -10,7 +10,10 @@ extern wchar_t *g_pszWUServiceDll; extern LPFN_REGQUERYVALUEEXW g_pfnRegQueryValueExW; extern LPFN_LOADLIBRARYEXW g_pfnLoadLibraryExW; extern LPFN_ISDEVICESERVICEABLE g_pfnIsDeviceServiceable; -extern LPFN_ISDEVICESERVICEABLE g_pfnIsDeviceServiceableLastKnown; + +extern PVOID g_ptRegQueryValueExW; +extern PVOID g_ptLoadLibraryExW; +extern PVOID g_ptIsDeviceServiceable; LSTATUS WINAPI RegQueryValueExW_hook(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); HMODULE WINAPI LoadLibraryExW_hook(LPCWSTR lpFileName, HANDLE hFile, DWORD dwFlags); diff --git a/src/wufuc/log.c b/src/wufuc/log.c new file mode 100644 index 0000000..70378e0 --- /dev/null +++ b/src/wufuc/log.c @@ -0,0 +1,292 @@ +#include "stdafx.h" +#include "log.h" + +void logp_debug_write(const wchar_t *const format, ...) +{ + DWORD pid; + wchar_t exepath[MAX_PATH]; + wchar_t *exename; + va_list argptr; + int count; + wchar_t *buffer1; + wchar_t *buffer2; + wchar_t datebuf[9]; + wchar_t timebuf[9]; + const wchar_t fmt[] = L"%ls %ls [%ls:%lu] %ls"; + + pid = GetCurrentProcessId(); + GetModuleFileNameW(NULL, exepath, _countof(exepath)); + exename = PathFindFileNameW(exepath); + + va_start(argptr, format); + count = _vscwprintf(format, argptr) + 1; + buffer1 = calloc(count, sizeof *buffer1); + vswprintf_s(buffer1, count, format, argptr); + va_end(argptr); + + _wstrdate_s(datebuf, _countof(datebuf)); + _wstrtime_s(timebuf, _countof(timebuf)); + count = _scwprintf(fmt, datebuf, timebuf, exename, pid, buffer1) + 1; + + buffer2 = calloc(count, sizeof *buffer2); + swprintf_s(buffer1, count, fmt, datebuf, timebuf, exename, pid, buffer1); + free(buffer1); + OutputDebugStringW(buffer2); + free(buffer2); +} +#define log_debug_write(format, ...) \ + logp_debug_write(__FUNCTIONW__ L": " format L"\r\n", ##__VA_ARGS__) +#define trace log_debug_write + +//#include "stdafx.h" +//#include "tracing.h" +//#include +// +//wchar_t path[MAX_PATH]; +//wchar_t exepath[MAX_PATH]; +// +//bool tracec(bool condition, const wchar_t *const format, ...) +//{ +// va_list argptr; +// int count; +// wchar_t *buffer; +// +// if ( condition ) { +// va_start(argptr, format); +// +// count = _vscwprintf(format, argptr) + 1; +// buffer = calloc(count, sizeof *buffer); +// vswprintf_s(buffer, count, format, argptr); +// +// va_end(argptr); +// OutputDebugStringW(buffer); +// free(buffer); +// } +// return condition; +//} +//void trace(const wchar_t *const format, ...) +//{ +// va_list argptr; +// int count; +// wchar_t *buffer; +// +// va_start(argptr, format); +// +// count = _vscwprintf(format, argptr) + 1; +// buffer = calloc(count, sizeof *buffer); +// vswprintf_s(buffer, count, format, argptr); +// +// va_end(argptr); +// OutputDebugStringW(buffer); +// free(buffer); +//} +// +//DWORD WINAPI tracing_thread(LPVOID pParam) +//{ +// wchar_t *folder; +// HANDLE file; +// DWORD dwProcessId; +// wchar_t *exename; +// int count; +// +// if ( !*path ) { +// SHGetKnownFolderPath(&FOLDERID_ProgramData, 0, NULL, &folder); +// wcscpy_s(path, _countof(path), folder); +// CoTaskMemFree(folder); +// PathAppendW(path, L"wufuc"); +// CreateDirectoryW(path, NULL); +// PathAppendW(path, L"wufuc.log"); +// } +// if ( !*exepath ) +// GetModuleFileNameW(NULL, exepath, _countof(exepath)); +// +// file = CreateFileW(path, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); +// itrace(L"CreateFileW=%p", file); +// dwProcessId = GetCurrentProcessId(); +// exename = PathFindFileNameW(exepath); +// +// va_start(argptr, format); +// count = _vscwprintf(format, argptr) + 1; +// buf1 = calloc(count, sizeof *buf1); +// vswprintf_s(buf1, count, format, argptr); +// va_end(argptr); +// +// count = _scwprintf(fmt, datebuf, timebuf, dwProcessId, exename, buf1); +// buf2 = calloc(count + 1, sizeof *buf2); +// swprintf_s(buf2, count + 1, fmt, datebuf, timebuf, dwProcessId, exename, buf1); +// free(buf1); +// itrace(L"WriteFile=%d", WriteFile(file, buf2, count * (sizeof *buf2), &written, NULL)); +// free(buf2); +// itrace(L"FlushFileBuffers=%d", FlushFileBuffers(file)); +// itrace(L"CloseHandle=%d", CloseHandle(file)); +// itrace(L"ReleaseMutex=%d", ReleaseMutex(g_hTracingMutex)); +// +// +// HANDLE hHeap = GetProcessHeap(); +// TCHAR* pchRequest = (TCHAR*)HeapAlloc(hHeap, 0, 512 * sizeof(TCHAR)); +// +// DWORD cbBytesRead = 0, cbReplyBytes = 0, cbWritten = 0; +// BOOL fSuccess = FALSE; +// HANDLE hPipe = NULL; +// +// // Do some extra error checking since the app will keep running even if this +// // thread fails. +// +// if ( pParam == NULL ) { +// itrace(L"\nERROR - Pipe Server Failure:"); +// itrace(L" InstanceThread got an unexpected NULL value in lpvParam."); +// itrace(L" InstanceThread exitting."); +// if ( pchRequest != NULL ) HeapFree(hHeap, 0, pchRequest); +// return -1; +// } +// +// // Print verbose messages. In production code, this should be for debugging only. +// printf("InstanceThread created, receiving and processing messages.\n"); +// +// // The thread's parameter is a handle to a pipe object instance. +// +// hPipe = (HANDLE)pParam; +// +// // Loop until done reading +// while ( true ) { +// // Read client requests from the pipe. This simplistic code only allows messages +// // up to BUFSIZE characters in length. +// fSuccess = ReadFile( +// hPipe, // handle to pipe +// pchRequest, // buffer to receive data +// 512 * sizeof(TCHAR), // size of buffer +// &cbBytesRead, // number of bytes read +// NULL); // not overlapped I/O +// +// if ( !fSuccess || cbBytesRead == 0 ) { +// if ( GetLastError() == ERROR_BROKEN_PIPE ) { +// itrace(L"InstanceThread: client disconnected."); +// } else { +// itrace(L"InstanceThread ReadFile failed, GLE=%d.", GetLastError()); +// } +// break; +// } +// +// _wstrdate_s(datebuf, _countof(datebuf)); +// _wstrtime_s(timebuf, _countof(timebuf)); +// +// if ( !fSuccess ) { +// itrace(L"InstanceThread WriteFile failed, GLE=%d.", GetLastError()); +// break; +// } +// } +// +// // Flush the pipe to allow the client to read the pipe's contents +// // before disconnecting. Then disconnect the pipe, and close the +// // handle to this pipe instance. +// +// FlushFileBuffers(hPipe); +// DisconnectNamedPipe(hPipe); +// CloseHandle(hPipe); +// +// HeapFree(hHeap, 0, pchRequest); +// +// printf("InstanceThread exitting.\n"); +// return 1; +//} +// +//bool start_tracing(const wchar_t *pipename) +//{ +// HANDLE hPipe; +// HANDLE hPipe = INVALID_HANDLE_VALUE; +// HANDLE hThread = NULL; +// +// while ( true ) { +// hPipe = CreateNamedPipeW(pipename, +// PIPE_ACCESS_INBOUND, 0, PIPE_UNLIMITED_INSTANCES, 512, 0, 512, NULL); +// if ( hPipe == INVALID_HANDLE_VALUE ) { +// itrace(L"CreateNamedPipe failed, GLE=%d.\n"), GetLastError(); +// return false; +// } +// +// if ( ConnectNamedPipe(hPipe, NULL) || +// GetLastError() == ERROR_PIPE_CONNECTED ) { +// itrace(L"Client connected, creating a processing thread."); +// +// // Create a thread for this client. +// hThread = CreateThread( +// NULL, // no security attribute +// 0, // default stack size +// tracing_thread, // thread proc +// (LPVOID)hPipe, // thread parameter +// 0, // not suspended +// NULL); // returns thread ID +// +// if ( hThread == NULL ) { +// itrace(L"CreateThread failed, GLE=%d.\n"), GetLastError(); +// return false; +// } else { +// CloseHandle(hThread); +// } +// } else { +// // The client could not connect, so close the pipe. +// CloseHandle(hPipe); +// } +// } +// return true; +//} +// +//void trace_(const wchar_t *const format, ...) +//{ +// va_list argptr; +// wchar_t *folder; +// wchar_t datebuf[9]; +// wchar_t timebuf[9]; +// HANDLE file; +// DWORD dwProcessId; +// wchar_t *exename; +// int count; +// DWORD written; +// const wchar_t fmt[] = L"%ls %ls [%lu] Exe(%ls) %ls"; +// wchar_t *buf1; +// wchar_t *buf2; +// +// va_start(argptr, format); +// itrace_(format); +// va_end(argptr); +// +// if ( !*path ) { +// SHGetKnownFolderPath(&FOLDERID_ProgramData, 0, NULL, &folder); +// wcscpy_s(path, _countof(path), folder); +// CoTaskMemFree(folder); +// PathAppendW(path, L"wufuc"); +// CreateDirectoryW(path, NULL); +// PathAppendW(path, L"wufuc.log"); +// } +// if ( !*exepath ) +// GetModuleFileNameW(NULL, exepath, _countof(exepath)); +// +// if ( !g_hTracingMutex ) +// g_hTracingMutex = CreateMutexW(NULL, FALSE, L"Global\\6b2f5740-7435-47f7-865c-dbd825292f32"); +// +// itrace(L"WaitForSingleObject=%lu", WaitForSingleObject(g_hTracingMutex, INFINITE)); +// +// _wstrdate_s(datebuf, _countof(datebuf)); +// _wstrtime_s(timebuf, _countof(timebuf)); +// +// file = CreateFileW(path, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); +// itrace(L"CreateFileW=%p", file); +// dwProcessId = GetCurrentProcessId(); +// exename = PathFindFileNameW(exepath); +// +// va_start(argptr, format); +// count = _vscwprintf(format, argptr) + 1; +// buf1 = calloc(count, sizeof *buf1); +// vswprintf_s(buf1, count, format, argptr); +// va_end(argptr); +// +// count = _scwprintf(fmt, datebuf, timebuf, dwProcessId, exename, buf1); +// buf2 = calloc(count + 1, sizeof *buf2); +// swprintf_s(buf2, count + 1, fmt, datebuf, timebuf, dwProcessId, exename, buf1); +// free(buf1); +// itrace(L"WriteFile=%d", WriteFile(file, buf2, count * (sizeof *buf2), &written, NULL)); +// free(buf2); +// itrace(L"FlushFileBuffers=%d", FlushFileBuffers(file)); +// itrace(L"CloseHandle=%d", CloseHandle(file)); +// itrace(L"ReleaseMutex=%d", ReleaseMutex(g_hTracingMutex)); +//} diff --git a/src/wufuc/log.h b/src/wufuc/log.h new file mode 100644 index 0000000..30397c1 --- /dev/null +++ b/src/wufuc/log.h @@ -0,0 +1,6 @@ +#pragma once + +void logp_debug_write(const wchar_t *const format, ...); +#define log_debug_write(format, ...) \ + logp_debug_write(__FUNCTIONW__ L": " format L"\r\n", ##__VA_ARGS__) +#define trace log_debug_write diff --git a/src/wufuc/modulehelper.c b/src/wufuc/modulehelper.c new file mode 100644 index 0000000..7c5f901 --- /dev/null +++ b/src/wufuc/modulehelper.c @@ -0,0 +1,151 @@ +#include "stdafx.h" +#include "modulehelper.h" + +HMODULE mod_get_from_th32_snapshot(HANDLE hSnapshot, const wchar_t *pLibFileName) +{ + MODULEENTRY32W me = { sizeof me }; + if ( !Module32FirstW(hSnapshot, &me) ) + return NULL; + do { + if ( !_wcsicmp(me.szExePath, pLibFileName) ) + return me.hModule; + } while ( Module32NextW(hSnapshot, &me) ); + return NULL; +} + +bool mod_inject_and_begin_thread( + HANDLE hProcess, + HMODULE hModule, + LPTHREAD_START_ROUTINE pStartAddress, + const void *pParam, + size_t cbParam) +{ + bool result = false; + NTSTATUS Status; + LPVOID pBaseAddress = NULL; + SIZE_T cb; + HMODULE hRemoteModule = NULL; + HANDLE hThread; + + Status = NtSuspendProcess(hProcess); + if ( !NT_SUCCESS(Status) ) return result; + + if ( pParam ) { + // this will be VirtualFree()'d by the function at pStartAddress + pBaseAddress = VirtualAllocEx(hProcess, + NULL, + cbParam, + MEM_RESERVE | MEM_COMMIT, + PAGE_READWRITE); + if ( !pBaseAddress ) goto resume; + + if ( !WriteProcessMemory(hProcess, pBaseAddress, pParam, cbParam, &cb) ) + goto vfree; + } + if ( mod_inject_by_hmodule(hProcess, hModule, &hRemoteModule) ) { + hThread = CreateRemoteThread(hProcess, + NULL, + 0, + (LPTHREAD_START_ROUTINE)((uint8_t *)hRemoteModule + ((uint8_t *)pStartAddress - (uint8_t *)hModule)), + pBaseAddress, + 0, + NULL); + + if ( hThread ) { + CloseHandle(hThread); + result = true; + } + } +vfree: + if ( !result && pBaseAddress ) + VirtualFreeEx(hProcess, pBaseAddress, 0, MEM_RELEASE); +resume: NtResumeProcess(hProcess); + return result; +} + +bool mod_inject_by_hmodule(HANDLE hProcess, HMODULE hModule, HMODULE *phRemoteModule) +{ + WCHAR Filename[MAX_PATH]; + DWORD nLength; + + nLength = GetModuleFileNameW(hModule, Filename, _countof(Filename)); + if ( nLength ) { + return mod_inject(hProcess, + Filename, + nLength, + phRemoteModule); + } + return false; +} + +bool mod_inject( + HANDLE hProcess, + const wchar_t *pLibFilename, + size_t cchLibFilename, + HMODULE *phRemoteModule) +{ + bool result = false; + DWORD dwProcessId; + NTSTATUS Status; + HANDLE hSnapshot; + SIZE_T nSize; + LPVOID pBaseAddress; + HANDLE hThread; + + Status = NtSuspendProcess(hProcess); + if ( !NT_SUCCESS(Status) ) return result; + + dwProcessId = GetProcessId(hProcess); + + hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); + if ( !hSnapshot ) goto resume; + + *phRemoteModule = mod_get_from_th32_snapshot(hSnapshot, + pLibFilename); + + CloseHandle(hSnapshot); + + // already injected... still sets *phRemoteModule + if ( *phRemoteModule ) goto resume; + + nSize = (cchLibFilename + 1) * sizeof *pLibFilename; + pBaseAddress = VirtualAllocEx(hProcess, + NULL, + nSize, + MEM_RESERVE | MEM_COMMIT, + PAGE_READWRITE); + + if ( !pBaseAddress ) goto resume; + + if ( !WriteProcessMemory(hProcess, pBaseAddress, pLibFilename, nSize, NULL) ) + goto vfree; + + hThread = CreateRemoteThread(hProcess, + NULL, + 0, + (LPTHREAD_START_ROUTINE)LoadLibraryW, + pBaseAddress, + 0, + NULL); + if ( !hThread ) goto vfree; + + WaitForSingleObject(hThread, INFINITE); + + if ( sizeof *phRemoteModule > sizeof(DWORD) ) { + hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); + if ( hSnapshot ) { + *phRemoteModule = mod_get_from_th32_snapshot( + hSnapshot, + pLibFilename); + + CloseHandle(hSnapshot); + result = *phRemoteModule != NULL; + } + } else { + result = GetExitCodeThread(hThread, (LPDWORD)phRemoteModule) != FALSE; + } + CloseHandle(hThread); +vfree: VirtualFreeEx(hProcess, pBaseAddress, 0, MEM_RELEASE); +resume: NtResumeProcess(hProcess); + return result; +} diff --git a/src/wufuc/modulehelper.h b/src/wufuc/modulehelper.h new file mode 100644 index 0000000..2e88a78 --- /dev/null +++ b/src/wufuc/modulehelper.h @@ -0,0 +1,15 @@ +#pragma once + +HMODULE mod_get_from_th32_snapshot(HANDLE hSnapshot, const wchar_t *pLibFileName); +bool mod_inject_and_begin_thread( + HANDLE hProcess, + HMODULE hModule, + LPTHREAD_START_ROUTINE pStartAddress, + const void *pParam, + size_t cbParam); +bool mod_inject_by_hmodule(HANDLE hProcess, HMODULE hModule, HMODULE *phRemoteModule); +bool mod_inject( + HANDLE hProcess, + const wchar_t *pLibFilename, + size_t cchLibFilename, + HMODULE *phRemoteModule); diff --git a/src/wufuc/registryhelper.c b/src/wufuc/registryhelper.c new file mode 100644 index 0000000..1c458ff --- /dev/null +++ b/src/wufuc/registryhelper.c @@ -0,0 +1,119 @@ +#include "stdafx.h" +#include "registryhelper.h" +#include + +PVOID reg_get_value_alloc( + HKEY hKey, + const wchar_t *SubKey, + const wchar_t *Value, + DWORD dwFlags, + LPDWORD pdwType, + LPDWORD pcbData) +{ + DWORD cbData = 0; + PVOID result = NULL; + + if ( RegGetValueW(hKey, SubKey, Value, dwFlags, pdwType, NULL, &cbData) != ERROR_SUCCESS ) + return result; + + result = malloc(cbData); + if ( !result ) return result; + + if ( RegGetValueW(hKey, SubKey, Value, dwFlags, pdwType, result, &cbData) == ERROR_SUCCESS ) { + if ( pcbData ) + *pcbData = cbData; + } else { + free(result); + result = NULL; + } + return result; +} + +LPBYTE reg_query_value_alloc( + HKEY hKey, + const wchar_t *SubKey, + const wchar_t *Value, + LPDWORD pdwType, + LPDWORD pcbData) +{ + HKEY hSubKey; + DWORD cbData = 0; + DWORD dwType; + LPBYTE result = NULL; + + if ( SubKey && *SubKey ) { + if ( RegOpenKeyW(hKey, SubKey, &hSubKey) != ERROR_SUCCESS ) + return result; + } else { + hSubKey = hKey; + } + if ( RegQueryValueExW(hSubKey, Value, NULL, &dwType, result, &cbData) != ERROR_SUCCESS ) + return result; + + switch ( dwType ) { + case REG_SZ: + case REG_EXPAND_SZ: + cbData += sizeof UNICODE_NULL; + break; + case REG_MULTI_SZ: + cbData += (sizeof UNICODE_NULL) * 2; + break; + } + result = malloc(cbData); + + if ( !result ) return result; + ZeroMemory(result, cbData); + + if ( RegQueryValueExW(hSubKey, Value, NULL, pdwType, result, &cbData) == ERROR_SUCCESS ) { + if ( pcbData ) + *pcbData = cbData; + } else { + free(result); + result = NULL; + } + return result; +} + +PVOID reg_query_key_alloc( + HANDLE KeyHandle, + KEY_INFORMATION_CLASS KeyInformationClass, + PULONG pResultLength) +{ + NTSTATUS Status; + ULONG ResultLength; + PVOID result = NULL; + + Status = NtQueryKey(KeyHandle, KeyInformationClass, NULL, 0, &ResultLength); + if ( Status != STATUS_BUFFER_OVERFLOW && Status != STATUS_BUFFER_TOO_SMALL ) + return result; + + result = malloc(ResultLength); + if ( !result ) return result; + + Status = NtQueryKey(KeyHandle, KeyInformationClass, result, ResultLength, &ResultLength); + if ( NT_SUCCESS(Status) ) { + *pResultLength = ResultLength; + } else { + free(result); + result = NULL; + } + return result; +} + +wchar_t *env_expand_strings_alloc(const wchar_t *src, LPDWORD pcchLength) +{ + wchar_t *result; + DWORD buffersize; + DWORD size; + + buffersize = ExpandEnvironmentStringsW(src, NULL, 0); + result = calloc(buffersize, sizeof *result); + size = ExpandEnvironmentStringsW(src, result, buffersize); + if ( !size || size > buffersize ) { + free(result); + result = NULL; + } else if ( pcchLength ) { + *pcchLength = buffersize; + } + return result; +} diff --git a/src/wufuc/registryhelper.h b/src/wufuc/registryhelper.h new file mode 100644 index 0000000..a02c69c --- /dev/null +++ b/src/wufuc/registryhelper.h @@ -0,0 +1,20 @@ +#pragma once + +PVOID reg_get_value_alloc( + HKEY hkey, + const wchar_t *pSubKey, + const wchar_t *pValue, + DWORD dwFlags, + LPDWORD pdwType, + LPDWORD pcbData); +LPBYTE reg_query_value_alloc( + HKEY hKey, + const wchar_t *pSubKey, + const wchar_t *pValueName, + LPDWORD pType, + LPDWORD pcbData); +PVOID reg_query_key_alloc( + HANDLE KeyHandle, + KEY_INFORMATION_CLASS KeyInformationClass, + PULONG pResultLength); +wchar_t *env_expand_strings_alloc(const wchar_t *src, LPDWORD pcchLength); diff --git a/src/wufuc/rundll32.c b/src/wufuc/rundll32.c index 8e68f4b..b326d13 100644 --- a/src/wufuc/rundll32.c +++ b/src/wufuc/rundll32.c @@ -1,12 +1,15 @@ #include "stdafx.h" +#include "context.h" #include "callbacks.h" -#include "hlpmem.h" -#include "hlpmisc.h" -#include "hlpsvc.h" +#include "modulehelper.h" +#include "registryhelper.h" +#include "servicehelper.h" +#include "log.h" +#include "wufuc.h" void CALLBACK RUNDLL32_StartW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow) { - ContextHandles ctx; + context ctx; DWORD dwDesiredAccess; DWORD dwProcessId; bool Unloading = false; @@ -15,55 +18,37 @@ void CALLBACK RUNDLL32_StartW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, in SC_HANDLE hService; SERVICE_NOTIFYW NotifyBuffer; - if ( !InitializeMutex(true, - L"Global\\25020063-b5a7-4227-9fdf-25cb75e8c645", - &ctx.hParentMutex) ) + if ( !ctx_create(&ctx, + L"Global\\25020063-b5a7-4227-9fdf-25cb75e8c645", 0, + L"Global\\wufuc_UnloadEvent", L"D:(A;;0x001F0003;;;BA)", 0) ) return; - if ( !start_traing() ) - itrace(L"Could not create tracing pipe!"); - return; - - if ( !CreateEventWithStringSecurityDescriptor(L"D:(A;;0x001F0003;;;BA)", - true, - false, - L"Global\\wufuc_UnloadEvent", - &ctx.hUnloadEvent) ) { - - trace(L"Failed to create unload event. (GetLastError=%lu)", GetLastError()); - goto close_mutex; - } dwDesiredAccess = SERVICE_QUERY_STATUS | SERVICE_QUERY_CONFIG; do { Lagging = false; hSCM = OpenSCManagerW(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); - if ( !hSCM ) { - trace(L"Failed to open SCM. (GetLastError=%lu)", GetLastError()); - goto close_event; - } + if ( !hSCM ) goto delete_ctx; hService = OpenServiceW(hSCM, L"wuauserv", dwDesiredAccess); - if ( !hService ) { - trace(L"Failed to open service. (GetLastError=%lu)", GetLastError()); - goto close_scm; - } + if ( !hService ) goto close_scm; + if ( (dwDesiredAccess & SERVICE_QUERY_CONFIG) == SERVICE_QUERY_CONFIG ) { dwDesiredAccess &= ~SERVICE_QUERY_CONFIG; - dwProcessId = HeuristicServiceProcessId(hSCM, hService); + dwProcessId = svc_heuristic_process_id(hSCM, hService); if ( dwProcessId ) - wufuc_InjectLibrary(dwProcessId, &ctx); + wufuc_inject(dwProcessId, (LPTHREAD_START_ROUTINE)cb_start, &ctx); } ZeroMemory(&NotifyBuffer, sizeof NotifyBuffer); NotifyBuffer.dwVersion = SERVICE_NOTIFY_STATUS_CHANGE; - NotifyBuffer.pfnNotifyCallback = ServiceNotifyCallback; + NotifyBuffer.pfnNotifyCallback = cb_service_notify; NotifyBuffer.pContext = (PVOID)&ctx; while ( !Unloading && !Lagging ) { switch ( NotifyServiceStatusChangeW(hService, SERVICE_NOTIFY_START_PENDING | SERVICE_NOTIFY_RUNNING, &NotifyBuffer) ) { case ERROR_SUCCESS: - Unloading = WaitForSingleObjectEx(ctx.hUnloadEvent, INFINITE, TRUE) == WAIT_OBJECT_0; + Unloading = WaitForSingleObjectEx(ctx.uevent, INFINITE, TRUE) == WAIT_OBJECT_0; break; case ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: trace(L"Client lagging!"); @@ -75,15 +60,11 @@ void CALLBACK RUNDLL32_StartW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, in } } CloseServiceHandle(hService); -close_scm: CloseServiceHandle(hSCM); +close_scm: + CloseServiceHandle(hSCM); } while ( Lagging ); -close_event: - CloseHandle(ctx.hUnloadEvent); -close_mutex: - ReleaseMutex(ctx.hParentMutex); - if ( g_hTracingMutex ) - CloseHandle(g_hTracingMutex); - CloseHandle(ctx.hParentMutex); +delete_ctx: + ctx_delete(&ctx); } void CALLBACK RUNDLL32_UnloadW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow) diff --git a/src/wufuc/hlpsvc.c b/src/wufuc/servicehelper.c similarity index 79% rename from src/wufuc/hlpsvc.c rename to src/wufuc/servicehelper.c index cfa7761..0e94113 100644 --- a/src/wufuc/hlpsvc.c +++ b/src/wufuc/servicehelper.c @@ -1,8 +1,8 @@ #include "stdafx.h" -#include "hlpmisc.h" -#include "hlpsvc.h" +#include "servicehelper.h" +#include "registryhelper.h" -LPQUERY_SERVICE_CONFIGW QueryServiceConfigByNameAlloc( +LPQUERY_SERVICE_CONFIGW svc_query_config_by_name_alloc( SC_HANDLE hSCM, const wchar_t *pServiceName, LPDWORD pcbBufSize) @@ -13,13 +13,13 @@ LPQUERY_SERVICE_CONFIGW QueryServiceConfigByNameAlloc( hService = OpenServiceW(hSCM, pServiceName, SERVICE_QUERY_CONFIG); if ( !hService ) return result; - result = QueryServiceConfigAlloc(hSCM, hService, pcbBufSize); + result = svc_query_config_alloc(hSCM, hService, pcbBufSize); CloseServiceHandle(hService); return result; } -LPQUERY_SERVICE_CONFIGW QueryServiceConfigAlloc( +LPQUERY_SERVICE_CONFIGW svc_query_config_alloc( SC_HANDLE hSCM, SC_HANDLE hService, LPDWORD pcbBufSize) @@ -44,7 +44,7 @@ LPQUERY_SERVICE_CONFIGW QueryServiceConfigAlloc( return result; } -bool QueryServiceStatusProcessInfoByName( +bool svc_query_process_info_by_name( SC_HANDLE hSCM, const wchar_t *pServiceName, LPSERVICE_STATUS_PROCESS pServiceStatus) @@ -66,7 +66,7 @@ bool QueryServiceStatusProcessInfoByName( return result; } -bool QueryServiceGroupName( +bool svc_query_group_name( const LPQUERY_SERVICE_CONFIGW pServiceConfig, wchar_t **pGroupName, HLOCAL *hMem) @@ -92,7 +92,7 @@ bool QueryServiceGroupName( return false; } -DWORD QueryServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService) +DWORD svc_query_process_id(SC_HANDLE hSCM, SC_HANDLE hService) { DWORD result = 0; SERVICE_STATUS_PROCESS ServiceStatus; @@ -109,16 +109,16 @@ DWORD QueryServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService) return result; } -DWORD QueryServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName) +DWORD svc_query_process_id_by_name(SC_HANDLE hSCM, const wchar_t *pServiceName) { SERVICE_STATUS_PROCESS ServiceStatusProcess; - if ( QueryServiceStatusProcessInfoByName(hSCM, pServiceName, &ServiceStatusProcess) ) + if ( svc_query_process_info_by_name(hSCM, pServiceName, &ServiceStatusProcess) ) return ServiceStatusProcess.dwProcessId; return 0; } -DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupNameSearch) +DWORD svc_heuristic_group_process_id(SC_HANDLE hSCM, const wchar_t *pGroupNameSearch) { wchar_t *pData; DWORD result = 0; @@ -129,7 +129,7 @@ DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupNameSe wchar_t *pGroupName; HLOCAL hMem; - pData = RegGetValueAlloc(HKEY_LOCAL_MACHINE, + pData = reg_get_value_alloc(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Svchost", pGroupNameSearch, RRF_RT_REG_MULTI_SZ, @@ -139,14 +139,14 @@ DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupNameSe if ( !pData ) return result; for ( wchar_t *pName = pData; *pName; pName += wcslen(pName) + 1 ) { - dwProcessId = QueryServiceProcessIdByName(hSCM, pName); + dwProcessId = svc_query_process_id_by_name(hSCM, pName); if ( !dwProcessId ) continue; - pServiceConfig = QueryServiceConfigByNameAlloc(hSCM, pName, &cbBufSize); + pServiceConfig = svc_query_config_by_name_alloc(hSCM, pName, &cbBufSize); if ( !pServiceConfig ) continue; if ( pServiceConfig->dwServiceType == SERVICE_WIN32_SHARE_PROCESS - && QueryServiceGroupName(pServiceConfig, &pGroupName, &hMem) ) { + && svc_query_group_name(pServiceConfig, &pGroupName, &hMem) ) { success = !_wcsicmp(pGroupNameSearch, pGroupName); LocalFree(hMem); @@ -161,18 +161,18 @@ DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupNameSe return result; } -DWORD HeuristicServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService) +DWORD svc_heuristic_process_id(SC_HANDLE hSCM, SC_HANDLE hService) { DWORD result = 0; LPQUERY_SERVICE_CONFIGW pServiceConfig; wchar_t *pGroupName; HLOCAL hMem; - result = QueryServiceProcessId(hSCM, hService); + result = svc_query_process_id(hSCM, hService); if ( result ) return result; - pServiceConfig = QueryServiceConfigAlloc(hSCM, hService, NULL); + pServiceConfig = svc_query_config_alloc(hSCM, hService, NULL); if ( pServiceConfig ) { switch ( pServiceConfig->dwServiceType ) { case SERVICE_WIN32_OWN_PROCESS: @@ -185,8 +185,8 @@ DWORD HeuristicServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService) // process, it is possible to "guess" which svchost.exe // it will eventually be loaded into by finding other // services in the same group that are already running. - if ( QueryServiceGroupName(pServiceConfig, &pGroupName, &hMem) ) { - result = HeuristicServiceGroupProcessId(hSCM, pGroupName); + if ( svc_query_group_name(pServiceConfig, &pGroupName, &hMem) ) { + result = svc_heuristic_group_process_id(hSCM, pGroupName); LocalFree(hMem); } break; @@ -196,13 +196,13 @@ DWORD HeuristicServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService) return result; } -DWORD HeuristicServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName) +DWORD svc_heuristic_process_id_by_name(SC_HANDLE hSCM, const wchar_t *pServiceName) { DWORD result = 0; SC_HANDLE hService; hService = OpenServiceW(hSCM, pServiceName, SERVICE_QUERY_STATUS | SERVICE_QUERY_CONFIG); - result = HeuristicServiceProcessId(hSCM, hService); + result = svc_heuristic_process_id(hSCM, hService); CloseServiceHandle(hService); return result; diff --git a/src/wufuc/servicehelper.h b/src/wufuc/servicehelper.h new file mode 100644 index 0000000..7342705 --- /dev/null +++ b/src/wufuc/servicehelper.h @@ -0,0 +1,23 @@ +#pragma once + +LPQUERY_SERVICE_CONFIGW svc_query_config_by_name_alloc( + SC_HANDLE hSCM, + const wchar_t *pServiceName, + LPDWORD pcbBufSize); +LPQUERY_SERVICE_CONFIGW svc_query_config_alloc( + SC_HANDLE hSCM, + SC_HANDLE hService, + LPDWORD pcbBufSize); +bool svc_query_process_info_by_name( + SC_HANDLE hSCM, + const wchar_t *pServiceName, + LPSERVICE_STATUS_PROCESS pServiceStatus); +bool svc_query_group_name( + const LPQUERY_SERVICE_CONFIGW pServiceConfig, + wchar_t **pGroupName, + HLOCAL *hMem); +DWORD svc_query_process_id(SC_HANDLE hSCM, SC_HANDLE hService); +DWORD svc_query_process_id_by_name(SC_HANDLE hSCM, const wchar_t *pServiceName); +DWORD svc_heuristic_group_process_id(SC_HANDLE hSCM, const wchar_t *pGroupName); +DWORD svc_heuristic_process_id(SC_HANDLE hSCM, SC_HANDLE hService); +DWORD svc_heuristic_process_id_by_name(SC_HANDLE hSCM, const wchar_t *pServiceName); diff --git a/src/wufuc/stdafx.h b/src/wufuc/stdafx.h index 8664869..51cad5d 100644 --- a/src/wufuc/stdafx.h +++ b/src/wufuc/stdafx.h @@ -27,10 +27,6 @@ #include #include -#include -#include "patternfind.h" -#include "tracing.h" - extern IMAGE_DOS_HEADER __ImageBase; #define PIMAGEBASE ((HMODULE)&__ImageBase) diff --git a/src/wufuc/tracing.c b/src/wufuc/tracing.c deleted file mode 100644 index 667d0e2..0000000 --- a/src/wufuc/tracing.c +++ /dev/null @@ -1,234 +0,0 @@ -#include "stdafx.h" -#include "tracing.h" -#include - -void itrace_(const wchar_t *const format, ...) -{ - va_list argptr; - int count; - wchar_t *buffer; - - va_start(argptr, format); - - count = _vscwprintf(format, argptr) + 1; - buffer = calloc(count, sizeof *buffer); - vswprintf_s(buffer, count, format, argptr); - - va_end(argptr); - OutputDebugStringW(buffer); - free(buffer); -} - -HANDLE g_hTracingMutex; -wchar_t path[MAX_PATH]; -wchar_t exepath[MAX_PATH]; - -DWORD WINAPI tracing_thread(LPVOID pParam) -{ - wchar_t *folder; - HANDLE file; - DWORD dwProcessId; - wchar_t *exename; - int count; - - if ( !*path ) { - SHGetKnownFolderPath(&FOLDERID_ProgramData, 0, NULL, &folder); - wcscpy_s(path, _countof(path), folder); - CoTaskMemFree(folder); - PathAppendW(path, L"wufuc"); - CreateDirectoryW(path, NULL); - PathAppendW(path, L"wufuc.log"); - } - if ( !*exepath ) - GetModuleFileNameW(NULL, exepath, _countof(exepath)); - - file = CreateFileW(path, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - itrace(L"CreateFileW=%p", file); - dwProcessId = GetCurrentProcessId(); - exename = PathFindFileNameW(exepath); - - va_start(argptr, format); - count = _vscwprintf(format, argptr) + 1; - buf1 = calloc(count, sizeof *buf1); - vswprintf_s(buf1, count, format, argptr); - va_end(argptr); - - count = _scwprintf(fmt, datebuf, timebuf, dwProcessId, exename, buf1); - buf2 = calloc(count + 1, sizeof *buf2); - swprintf_s(buf2, count + 1, fmt, datebuf, timebuf, dwProcessId, exename, buf1); - free(buf1); - itrace(L"WriteFile=%d", WriteFile(file, buf2, count * (sizeof *buf2), &written, NULL)); - free(buf2); - itrace(L"FlushFileBuffers=%d", FlushFileBuffers(file)); - itrace(L"CloseHandle=%d", CloseHandle(file)); - itrace(L"ReleaseMutex=%d", ReleaseMutex(g_hTracingMutex)); - - - HANDLE hHeap = GetProcessHeap(); - TCHAR* pchRequest = (TCHAR*)HeapAlloc(hHeap, 0, 512 * sizeof(TCHAR)); - - DWORD cbBytesRead = 0, cbReplyBytes = 0, cbWritten = 0; - BOOL fSuccess = FALSE; - HANDLE hPipe = NULL; - - // Do some extra error checking since the app will keep running even if this - // thread fails. - - if ( pParam == NULL ) { - itrace(L"\nERROR - Pipe Server Failure:"); - itrace(L" InstanceThread got an unexpected NULL value in lpvParam."); - itrace(L" InstanceThread exitting."); - if ( pchRequest != NULL ) HeapFree(hHeap, 0, pchRequest); - return -1; - } - - // Print verbose messages. In production code, this should be for debugging only. - printf("InstanceThread created, receiving and processing messages.\n"); - - // The thread's parameter is a handle to a pipe object instance. - - hPipe = (HANDLE)pParam; - - // Loop until done reading - while ( true ) { - // Read client requests from the pipe. This simplistic code only allows messages - // up to BUFSIZE characters in length. - fSuccess = ReadFile( - hPipe, // handle to pipe - pchRequest, // buffer to receive data - 512 * sizeof(TCHAR), // size of buffer - &cbBytesRead, // number of bytes read - NULL); // not overlapped I/O - - if ( !fSuccess || cbBytesRead == 0 ) { - if ( GetLastError() == ERROR_BROKEN_PIPE ) { - itrace(L"InstanceThread: client disconnected."); - } else { - itrace(L"InstanceThread ReadFile failed, GLE=%d.", GetLastError()); - } - break; - } - - _wstrdate_s(datebuf, _countof(datebuf)); - _wstrtime_s(timebuf, _countof(timebuf)); - - if ( !fSuccess ) { - itrace(L"InstanceThread WriteFile failed, GLE=%d.", GetLastError()); - break; - } - } - - // Flush the pipe to allow the client to read the pipe's contents - // before disconnecting. Then disconnect the pipe, and close the - // handle to this pipe instance. - - FlushFileBuffers(hPipe); - DisconnectNamedPipe(hPipe); - CloseHandle(hPipe); - - HeapFree(hHeap, 0, pchRequest); - - printf("InstanceThread exitting.\n"); - return 1; -} - -bool start_tracing(const wchar_t *pipename) -{ - HANDLE hPipe; - HANDLE hPipe = INVALID_HANDLE_VALUE; - HANDLE hThread = NULL; - - while ( true ) { - hPipe = CreateNamedPipeW(pipename, - PIPE_ACCESS_INBOUND, 0, PIPE_UNLIMITED_INSTANCES, 512, 0, 512, NULL); - if ( hPipe == INVALID_HANDLE_VALUE ) { - itrace(L"CreateNamedPipe failed, GLE=%d.\n"), GetLastError(); - return false; - } - - if ( ConnectNamedPipe(hPipe, NULL) || - GetLastError() == ERROR_PIPE_CONNECTED ) { - itrace(L"Client connected, creating a processing thread."); - - // Create a thread for this client. - hThread = CreateThread( - NULL, // no security attribute - 0, // default stack size - tracing_thread, // thread proc - (LPVOID)hPipe, // thread parameter - 0, // not suspended - NULL); // returns thread ID - - if ( hThread == NULL ) { - itrace(L"CreateThread failed, GLE=%d.\n"), GetLastError(); - return false; - } else { - CloseHandle(hThread); - } - } else { - // The client could not connect, so close the pipe. - CloseHandle(hPipe); - } - } - return true; -} - -void trace_(const wchar_t *const format, ...) -{ - va_list argptr; - wchar_t *folder; - wchar_t datebuf[9]; - wchar_t timebuf[9]; - HANDLE file; - DWORD dwProcessId; - wchar_t *exename; - int count; - DWORD written; - const wchar_t fmt[] = L"%ls %ls [%lu] Exe(%ls) %ls"; - wchar_t *buf1; - wchar_t *buf2; - - va_start(argptr, format); - itrace_(format); - va_end(argptr); - - if ( !*path ) { - SHGetKnownFolderPath(&FOLDERID_ProgramData, 0, NULL, &folder); - wcscpy_s(path, _countof(path), folder); - CoTaskMemFree(folder); - PathAppendW(path, L"wufuc"); - CreateDirectoryW(path, NULL); - PathAppendW(path, L"wufuc.log"); - } - if ( !*exepath ) - GetModuleFileNameW(NULL, exepath, _countof(exepath)); - - if ( !g_hTracingMutex ) - g_hTracingMutex = CreateMutexW(NULL, FALSE, L"Global\\6b2f5740-7435-47f7-865c-dbd825292f32"); - - itrace(L"WaitForSingleObject=%lu", WaitForSingleObject(g_hTracingMutex, INFINITE)); - - _wstrdate_s(datebuf, _countof(datebuf)); - _wstrtime_s(timebuf, _countof(timebuf)); - - file = CreateFileW(path, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - itrace(L"CreateFileW=%p", file); - dwProcessId = GetCurrentProcessId(); - exename = PathFindFileNameW(exepath); - - va_start(argptr, format); - count = _vscwprintf(format, argptr) + 1; - buf1 = calloc(count, sizeof *buf1); - vswprintf_s(buf1, count, format, argptr); - va_end(argptr); - - count = _scwprintf(fmt, datebuf, timebuf, dwProcessId, exename, buf1); - buf2 = calloc(count + 1, sizeof *buf2); - swprintf_s(buf2, count + 1, fmt, datebuf, timebuf, dwProcessId, exename, buf1); - free(buf1); - itrace(L"WriteFile=%d", WriteFile(file, buf2, count * (sizeof *buf2), &written, NULL)); - free(buf2); - itrace(L"FlushFileBuffers=%d", FlushFileBuffers(file)); - itrace(L"CloseHandle=%d", CloseHandle(file)); - itrace(L"ReleaseMutex=%d", ReleaseMutex(g_hTracingMutex)); -} diff --git a/src/wufuc/tracing.h b/src/wufuc/tracing.h deleted file mode 100644 index 8069508..0000000 --- a/src/wufuc/tracing.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -extern HANDLE g_hTracingMutex; - -void itrace_(const wchar_t *const format, ...); -void trace_(const wchar_t *const format, ...); - -#define STRINGIZEW_(x) L#x -#define STRINGIZEW(x) STRINGIZEW_(x) - -#define LINEWSTR STRINGIZEW(__LINE__) -#define itrace(format, ...) itrace_(__FILEW__ L":" LINEWSTR L"(" __FUNCTIONW__ L"): " format L"\r\n", ##__VA_ARGS__) -#define trace(format, ...) trace_(__FILEW__ L":" LINEWSTR L"(" __FUNCTIONW__ L"): " format L"\r\n", ##__VA_ARGS__) diff --git a/src/wufuc/hlpver.c b/src/wufuc/versionhelper.c similarity index 76% rename from src/wufuc/hlpver.c rename to src/wufuc/versionhelper.c index dfa0fbb..b46c77d 100644 --- a/src/wufuc/hlpver.c +++ b/src/wufuc/versionhelper.c @@ -1,7 +1,7 @@ #include "stdafx.h" -#include "hlpver.h" +#include "versionhelper.h" -int ProductVersionCompare(VS_FIXEDFILEINFO *pffi, WORD wMajor, WORD wMinor, WORD wBuild, WORD wRev) +int ver_compare_product_version(VS_FIXEDFILEINFO *pffi, WORD wMajor, WORD wMinor, WORD wBuild, WORD wRev) { if ( HIWORD(pffi->dwProductVersionMS) < wMajor ) return -1; if ( HIWORD(pffi->dwProductVersionMS) > wMajor ) return 1; @@ -14,7 +14,7 @@ int ProductVersionCompare(VS_FIXEDFILEINFO *pffi, WORD wMajor, WORD wMinor, WORD return 0; } -bool GetVersionInfoFromHModule(HMODULE hModule, const wchar_t *pszSubBlock, LPVOID pData, PUINT pcbData) +bool ver_get_version_info_from_hmodule(HMODULE hModule, const wchar_t *pszSubBlock, LPVOID pData, PUINT pcbData) { bool result = false; UINT cbData; @@ -44,8 +44,9 @@ bool GetVersionInfoFromHModule(HMODULE hModule, const wchar_t *pszSubBlock, LPVO if ( !pRes ) return result; pCopy = malloc(dwSize); - if ( !pCopy - || memcpy_s(pCopy, dwSize, pRes, dwSize) + if ( !pCopy ) return result; + + if ( memcpy_s(pCopy, dwSize, pRes, dwSize) || !VerQueryValueW(pCopy, pszSubBlock, &pBuffer, &uLen) ) goto cleanup; @@ -68,18 +69,18 @@ cleanup: return result; } -LPVOID GetVersionInfoFromHModuleAlloc(HMODULE hModule, const wchar_t *pszSubBlock, PUINT pcbData) +LPVOID ver_get_version_info_from_hmodule_alloc(HMODULE hModule, const wchar_t *pszSubBlock, PUINT pcbData) { UINT cbData = 0; LPVOID result = NULL; - if ( !GetVersionInfoFromHModule(hModule, pszSubBlock, NULL, &cbData) ) + if ( !ver_get_version_info_from_hmodule(hModule, pszSubBlock, NULL, &cbData) ) return result; result = malloc(cbData); if ( !result ) return result; - if ( GetVersionInfoFromHModule(hModule, pszSubBlock, result, &cbData) ) { + if ( ver_get_version_info_from_hmodule(hModule, pszSubBlock, result, &cbData) ) { *pcbData = cbData; } else { free(result); @@ -88,7 +89,7 @@ LPVOID GetVersionInfoFromHModuleAlloc(HMODULE hModule, const wchar_t *pszSubBloc return result; } -bool IsWindowsVersion(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor) +bool ver_verify_version_info(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor) { OSVERSIONINFOEXW osvi = { sizeof osvi }; @@ -105,3 +106,13 @@ bool IsWindowsVersion(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackM VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE; } + +bool ver_verify_windows_7_sp1(void) +{ + return ver_verify_version_info(6, 1, 1); +} + +bool ver_verify_windows_8_1(void) +{ + return ver_verify_version_info(6, 3, 0); +} diff --git a/src/wufuc/versionhelper.h b/src/wufuc/versionhelper.h new file mode 100644 index 0000000..7fc954e --- /dev/null +++ b/src/wufuc/versionhelper.h @@ -0,0 +1,8 @@ +#pragma once + +int ver_compare_product_version(VS_FIXEDFILEINFO *pffi, WORD wMajor, WORD wMinor, WORD wBuild, WORD wRev); +bool ver_get_version_info_from_hmodule(HMODULE hModule, const wchar_t *pszSubBlock, LPVOID pData, PUINT pcbData); +LPVOID ver_get_version_info_from_hmodule_alloc(HMODULE hModule, const wchar_t *pszSubBlock, PUINT pcbData); +bool ver_verify_version_info(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor); +bool ver_verify_windows_7_sp1(void); +bool ver_verify_windows_8_1(void); \ No newline at end of file diff --git a/src/wufuc/wufuc.c b/src/wufuc/wufuc.c new file mode 100644 index 0000000..856fa77 --- /dev/null +++ b/src/wufuc/wufuc.c @@ -0,0 +1,126 @@ +#include "stdafx.h" + +#include "context.h" +#include "wufuc.h" +#include "modulehelper.h" +#include "versionhelper.h" +#include "hooks.h" +#include "log.h" +#include "patternfind.h" + +#include + +bool wufuc_inject(DWORD dwProcessId, + LPTHREAD_START_ROUTINE pfnStart, + context *pContext) +{ + bool result = false; + HANDLE hProcess; + HANDLE hMutex; + context ctx; + + if ( !ctx_add_new_mutex_fmt(pContext, + false, + dwProcessId, + &hMutex, + L"Global\\%08x-7132-44a8-be15-56698979d2f3", dwProcessId) ) + return false; + + hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId); + if ( !hProcess ) return false; + + result = ctx_duplicate_context(pContext, hProcess, &ctx, hMutex, DUPLICATE_SAME_ACCESS, dwProcessId) + && mod_inject_and_begin_thread(hProcess, PIMAGEBASE, pfnStart, &ctx, sizeof ctx); + CloseHandle(hProcess); + return result; +} + +bool wufuc_hook(HMODULE hModule) +{ + bool result = false; + PLANGANDCODEPAGE ptl; + HANDLE hProcess; + int tmp; + UINT cbtl; + wchar_t SubBlock[38]; + UINT cbInternalName; + wchar_t *pInternalName; + UINT cbffi; + VS_FIXEDFILEINFO *pffi; + MODULEINFO modinfo; + size_t offset; + + if ( !ver_verify_windows_7_sp1() && !ver_verify_windows_8_1() ) + return false; + + ptl = ver_get_version_info_from_hmodule_alloc(hModule, L"\\VarFileInfo\\Translation", &cbtl); + if ( !ptl ) { + trace(L"Failed to allocate version translation information from hmodule."); + return false; + } + hProcess = GetCurrentProcess(); + + for ( size_t i = 0, count = (cbtl / sizeof *ptl); i < count; i++ ) { + if ( swprintf_s(SubBlock, + _countof(SubBlock), + L"\\StringFileInfo\\%04x%04x\\InternalName", + ptl[i].wLanguage, + ptl[i].wCodePage) == -1 ) + continue; + + pInternalName = ver_get_version_info_from_hmodule_alloc(hModule, SubBlock, &cbInternalName); + if ( !pInternalName ) { + trace(L"Failed to allocate version internal name from hmodule."); + continue; + } + + // identify wuaueng.dll by its resource data + if ( !_wcsicmp(pInternalName, L"wuaueng.dll") ) { + pffi = ver_get_version_info_from_hmodule_alloc(hModule, L"\\", &cbffi); + if ( !pffi ) { + trace(L"Failed to allocate version information from hmodule."); + break; + } + trace(L"Windows Update Agent version: %hu.%hu.%hu.%hu"), + HIWORD(pffi->dwProductVersionMS), + LOWORD(pffi->dwProductVersionMS), + HIWORD(pffi->dwProductVersionLS), + LOWORD(pffi->dwProductVersionLS); + + // assure wuaueng.dll is at least the minimum supported version + tmp = ((ver_verify_windows_7_sp1() && ver_compare_product_version(pffi, 7, 6, 7601, 23714) != -1) + || (ver_verify_windows_8_1() && ver_compare_product_version(pffi, 7, 9, 9600, 18621) != -1)); + free(pffi); + if ( !tmp ) { + trace(L"Windows Update Agent does not meet the minimum supported version."); + break; + } + if ( !GetModuleInformation(hProcess, hModule, &modinfo, sizeof modinfo) ) { + trace(L"Failed to get module information (%p)", hModule); + break; + } + offset = patternfind(modinfo.lpBaseOfDll, modinfo.SizeOfImage, +#ifdef _WIN64 + "FFF3 4883EC?? 33DB 391D???????? 7508 8B05????????" +#else + ver_verify_windows_7_sp1() + ? "833D????????00 743E E8???????? A3????????" + : "8BFF 51 833D????????00 7507 A1????????" +#endif + ); + + if ( offset == -1 ) { + trace(L"Could not locate pattern offset!"); + break; + } else { + result = MH_CreateHook((PVOID)((uint8_t *)modinfo.lpBaseOfDll + offset), + IsDeviceServiceable_hook, + NULL) == MH_OK; + } + break; + } else trace(L"Module internal name does not match. (%ls)", pInternalName); + free(pInternalName); + } + free(ptl); + return result; + } diff --git a/src/wufuc/wufuc.h b/src/wufuc/wufuc.h new file mode 100644 index 0000000..d78a396 --- /dev/null +++ b/src/wufuc/wufuc.h @@ -0,0 +1,12 @@ +#pragma once + +typedef struct +{ + WORD wLanguage; + WORD wCodePage; +} LANGANDCODEPAGE, *PLANGANDCODEPAGE; + +bool wufuc_inject(DWORD dwProcessId, + LPTHREAD_START_ROUTINE pfnStart, + context *pContext); +bool wufuc_hook(HMODULE hModule); \ No newline at end of file diff --git a/src/wufuc/wufuc.vcxproj b/src/wufuc/wufuc.vcxproj index f078f25..fcc3c9f 100644 --- a/src/wufuc/wufuc.vcxproj +++ b/src/wufuc/wufuc.vcxproj @@ -20,24 +20,28 @@ - - - - + + + + + + - + + - - - - + + + + + Create @@ -46,7 +50,7 @@ Create - + @@ -115,8 +119,8 @@ $(ProjectDir)$(BaseIntermediateOutputPath)$(Configuration)\$(PlatformShortName)\ $(ProjectName)$(PlatformArchitecture) false - $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\detours;$(IncludePath) - $(SolutionDir)..\lib\detours;$(LibraryPath) + $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\minhook;$(IncludePath) + $(SolutionDir)..\lib\minhook;$(LibraryPath) true @@ -124,26 +128,26 @@ $(ProjectDir)$(BaseIntermediateOutputPath)$(Configuration)\$(PlatformShortName)\ $(ProjectName)$(PlatformArchitecture) false - $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\detours;$(IncludePath) - $(SolutionDir)..\lib\detours;$(LibraryPath) + $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\minhook;$(IncludePath) + $(SolutionDir)..\lib\minhook;$(LibraryPath) false $(ProjectDir)bin\$(Configuration)\$(PlatformShortName)\ - $(ProjectDir)$(BaseIntermediateOutputPath)$(Configuration)\$(PlatformShortName)\ + $(ProjectDir)obj\$(Configuration)\$(PlatformShortName)\ $(ProjectName)$(PlatformArchitecture) false - $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\detours;$(IncludePath) - $(SolutionDir)..\lib\detours;$(LibraryPath) + $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\minhook;$(IncludePath) + $(SolutionDir)..\lib\minhook;$(LibraryPath) false $(ProjectDir)bin\$(Configuration)\$(PlatformShortName)\ - $(ProjectDir)$(BaseIntermediateOutputPath)$(Configuration)\$(PlatformShortName)\ + $(ProjectDir)obj\$(Configuration)\$(PlatformShortName)\ $(ProjectName)$(PlatformArchitecture) false - $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\detours;$(IncludePath) - $(SolutionDir)..\lib\detours;$(LibraryPath) + $(SolutionDir)..\inc\phnt;$(SolutionDir)..\inc\minhook;$(IncludePath) + $(SolutionDir)..\lib\minhook;$(LibraryPath) @@ -162,7 +166,7 @@ exports.def - version.lib;Shlwapi.lib;detours.X86.MTd.lib;%(AdditionalDependencies);ntdll.lib + version.lib;Shlwapi.lib;libMinHook.x86.MTd.lib;%(AdditionalDependencies);ntdll.lib X86;%(PreprocessorDefinitions) @@ -185,7 +189,7 @@ exports.def - version.lib;Shlwapi.lib;detours.X64.MTd.lib;%(AdditionalDependencies);ntdll.lib + version.lib;Shlwapi.lib;libMinHook.x64.MTd.lib;%(AdditionalDependencies);ntdll.lib X64;%(PreprocessorDefinitions) @@ -216,7 +220,7 @@ exports.def - version.lib;Shlwapi.lib;detours.X86.MT.lib;%(AdditionalDependencies);ntdll.lib + version.lib;Shlwapi.lib;libMinHook.x86.MT.lib;%(AdditionalDependencies);ntdll.lib true @@ -253,7 +257,7 @@ copy /Y "$(TargetPath)" "$(SolutionDir)wufuc_setup\" true false exports.def - version.lib;Shlwapi.lib;detours.X64.MT.lib;%(AdditionalDependencies);ntdll.lib + version.lib;Shlwapi.lib;libMinHook.x64.MT.lib;%(AdditionalDependencies);ntdll.lib true diff --git a/src/wufuc/wufuc.vcxproj.filters b/src/wufuc/wufuc.vcxproj.filters index 5b1276a..1c95330 100644 --- a/src/wufuc/wufuc.vcxproj.filters +++ b/src/wufuc/wufuc.vcxproj.filters @@ -21,9 +21,6 @@ Header Files - - Header Files - Header Files @@ -33,16 +30,25 @@ Header Files - + Header Files - + Header Files - + Header Files - + + Header Files + + + Header Files + + + Header Files + + Header Files @@ -56,9 +62,6 @@ Source Files - - Source Files - Source Files @@ -68,16 +71,25 @@ Source Files - + Source Files - + Source Files - + Source Files - + + Source Files + + + Source Files + + + Source Files + + Source Files