From 2933a5091672395826c28b516c1244776499fa24 Mon Sep 17 00:00:00 2001 From: Leon Krieg Date: Tue, 2 Jun 2026 02:40:03 +0200 Subject: [PATCH] Initial commit --- .gitignore | 4 + Makefile | 16 + docs/LICENSE.txt | 110 ++++ docs/README.md | 52 ++ docs/problem.png | Bin 0 -> 2088 bytes include/MinHook.h | 185 +++++++ lib/MinHook/buffer.c | 312 ++++++++++++ lib/MinHook/buffer.h | 42 ++ lib/MinHook/hde/hde32.c | 324 ++++++++++++ lib/MinHook/hde/hde32.h | 105 ++++ lib/MinHook/hde/hde64.c | 335 +++++++++++++ lib/MinHook/hde/hde64.h | 112 +++++ lib/MinHook/hde/pstdint.h | 39 ++ lib/MinHook/hde/table32.h | 73 +++ lib/MinHook/hde/table64.h | 74 +++ lib/MinHook/hook.c | 939 +++++++++++++++++++++++++++++++++++ lib/MinHook/trampoline.c | 320 ++++++++++++ lib/MinHook/trampoline.h | 105 ++++ src/main.c | 85 ++++ tools/make.exe | Bin 0 -> 175104 bytes tools/msbuild.bat | 15 + tools/regfix.sln | 28 ++ tools/regfix.vcxproj | 199 ++++++++ tools/regfix.vcxproj.filters | 49 ++ tools/regfix.vcxproj.user | 4 + tools/vswhere.exe | Bin 0 -> 469456 bytes 26 files changed, 3527 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 docs/LICENSE.txt create mode 100644 docs/README.md create mode 100644 docs/problem.png create mode 100644 include/MinHook.h create mode 100644 lib/MinHook/buffer.c create mode 100644 lib/MinHook/buffer.h create mode 100644 lib/MinHook/hde/hde32.c create mode 100644 lib/MinHook/hde/hde32.h create mode 100644 lib/MinHook/hde/hde64.c create mode 100644 lib/MinHook/hde/hde64.h create mode 100644 lib/MinHook/hde/pstdint.h create mode 100644 lib/MinHook/hde/table32.h create mode 100644 lib/MinHook/hde/table64.h create mode 100644 lib/MinHook/hook.c create mode 100644 lib/MinHook/trampoline.c create mode 100644 lib/MinHook/trampoline.h create mode 100644 src/main.c create mode 100644 tools/make.exe create mode 100644 tools/msbuild.bat create mode 100644 tools/regfix.sln create mode 100644 tools/regfix.vcxproj create mode 100644 tools/regfix.vcxproj.filters create mode 100644 tools/regfix.vcxproj.user create mode 100644 tools/vswhere.exe diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..60ce42d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +bin/ +tools/build/ +tools/.vs/ +*.swp \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..929ec18 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +PLATFORM := x86 +CONFIG := release +SOLUTION := tools\regfix.sln +MSBUILD := tools\msbuild.bat + +.PHONY: build +build: + @echo [CC] Building with config '$(CONFIG)'... + @$(MSBUILD) "$(SOLUTION)" /nologo /verbosity:quiet /t:build \ + /p:platform=$(PLATFORM) /p:configuration=$(CONFIG) + +.PHONY: clean +clean: + @echo [RM] Cleaning build files... + @$(MSBUILD) "$(SOLUTION)" /nologo /verbosity:quiet \ + /t:clean \ No newline at end of file diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt new file mode 100644 index 0000000..56d4e5c --- /dev/null +++ b/docs/LICENSE.txt @@ -0,0 +1,110 @@ +RegFix - Registry Subkey Redirection for WoW 1.12.1 +Copyright (C) 2026 Leon Krieg. +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. + +================================================================================ + +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. + +================================================================================ +Portions of this software are Copyright (c) 2008-2009, Vyacheslav Patkov. +================================================================================ +Hacker Disassembler Engine 32 C +Copyright (c) 2008-2009, Vyacheslav Patkov. +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 REGENTS 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. + +================================================================================ + +Hacker Disassembler Engine 64 C +Copyright (c) 2008-2009, Vyacheslav Patkov. +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 REGENTS 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. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..fad5a74 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,52 @@ +# WoW Vanilla Regfix + +Fixes the "Hardware changed. Reload default settings?" message box that appears when +switching between World of Warcraft 1.x and newer clients. + +![Message Box](problem.png) + +The issue is that all clients share the same registry subkey + + HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\World of Warcraft\Client + +but the WoW Vanilla client handles values stored there for HWCpuIdx and HWVideoID differently. +So these hardware identifiers keep changing, which causes the game to assume that the +hardware must be different and display the aforementioned message box. + +This fix intercepts calls to RegOpenKeyExW and RegCreateKeyExW and rewrites the destination +where necessary. This means the WoW Vanilla client now uses the following separate registry subkey: + + HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\World of Warcraft Vanilla\Client + +## How to Use + +There is currently no launcher for injecting the DLL included. I recommend using +[VanillaFixes](https://github.com/hannesmann/vanillafixes) which can load additional +DLLs (and really helps with framerate issues on the old client). + +- Install [VanillaFixes](https://github.com/hannesmann/vanillafixes). +- Grab regfix.dll from the releases section and copy it to the WoW root directory. +- Open dlls.txt in the WoW root directory and add a new line "regfix.dll" at the end. +- Run game using the VanillaFixes.exe launcher. + + +## Build + +Building requires Visual Studio and GNU Make for Window (which can be found in tools/). +Make should be in your system path. From the project directory run: + + make + +This builds the binaries with MSBuild and places the DLL in the bin/ directory. +To clean all auxiliary build files run: + + make clean + +The build system may be a bit unconventional but I like to use my Linux tools +even when working on Windows systems. GNU Make as a thin wrapper around +MSBuild allows me to have my familiar terminal workflow while compiling +natively with the Visual Studio compiler. + +## Licenses + +Licenses for this project and MinHook can be found in docs/LICENSE.txt diff --git a/docs/problem.png b/docs/problem.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c5b93dd8c4da9bdc5a8f9c094456121966d690 GIT binary patch literal 2088 zcmb_deK^yL9$&{PrxMjkNLn7`?cjtGX1j_;&P6ahw&hy-V?(^K|o`23C-?!)ce7}Eup3nF5z3JzR z-m~k_E*K29$J@)p9|qf|tIl)3`AY4Z{Nh*CVOy#{`ZTO%;IKknd>!YGafiX$sJo%4 z?dp1GvR6nd45rQh-L?sm9>&68noqqw+yl}tDW~1YQ;+xGh_XSWXNt;ZelZ<5Y(=Z6 z54KJ@ij^CQcN|MWT=;CAd%5(s?TN;d8_31*$h}*a=TiG?`_g7%>G=?(`R1BjbJ+xy z3kSDBLY+5g3Je8kd|m}JT&HVht~n#KGr&rCHy1Z@zA^+~S{$7+p+JmqA5|*1X@1(= z+v&$23yqBAS?zm<-Or=1XSpM4cqGa=VZxonLb1wet-t3g3pZs*S8JSXK~lO9mg3@Y0F}MfZ09o^CTH zpD)MNyJQY=o5<{wT-@RCa|7w=d8LfxIQb=3meMl0-NPfM-$~vZ}_Ee|!y!jge>!3;X=(Lx4EKePlPL$ zK=N_1_&Chuq&C}B$sA%P?X@5Ei_`PO&_^d<+tQiQqY(>zPvS7nML%rFwl@3j#YK~R zaP`Y~zG}SSgq=VidBv?Ys77-Ig0{POgQAie_#0`;=oV$yW&QsmKqxD{1?#@iFg$nDHbKeN|^4!MuoAi4#;=$Pq8^VDxK?{c^iD>_MU|}-ZwaGeXdA5pf zuwT$(dzR7?9oxmC9?(k?p~<~SGIO-;q4rARW25=%s9z>itCkj3{MBO-A6FnDvgb(w zYeZ3p=#L?~FpVW1Bhin~&vi&zBPS2UQ3iBzR+&JEQ|W_SiJ@+hp#)$k@HuBGz{STY zam;3@3fz}BaQP}fAyIGi;_$(PGyX<*UpD#);;9Yd=p!9Q7iTE7Q7&8KXooN#uL$0K zOn5oNmxof6Xz#rqAC|SJExd`3_Yr9B3nTCnQn{LX4j7>@pS$W|3@>VG)d7Q`B5qk#LR|FVu<&5m`Ap<|2cex zrz_DSy|W&%6-T1kGjVKl!BiEf+qyP*{Lafc`gCZWr)#2;4>pd5#%ET| zmsb$aSu$oEk$Pg8qKbW<dv<#)gsjyZ;Jem$viZ}_sW%PDV zV9xn4qB{chtGXo*nx~7(eC_hXaaYe&HWLbMZA!5htw~-ETyu?gS|h$ni;jfADuFk# z**k>*AHX8eP@oJ|>zjGQB+Ur;`+|w({K^E;gBinQ8ZqZrMb+(Hi{S8Cr^?vgwuT66 zZ47p!bGo7|#HoGNI8HWUn61nbb5qDWW_VJ!G**;-f-O7SqmR$A;?+ z4W&|sMOJWT_WsAh+gXlsfnQFmshiV+40%Ycn19k$s3rK0N@bVZ|9|&UpB39OM#{GM z>+abbUrsPmwZN4U!;0Cpx5Di%)r=hNrPWnB^xk;h{Mo98x87e(QQ+HPq14wA1%ehr z9dJSe6zK>~Q^=<&0Kct-QB%TzlE0J3nH$b8uCDyHa-yOaH9d>UrapJeCR60wr|3aP zX{hCxO5UlI(?Xn+9y6@jsSuK>Nxy4b!Eh6CHgoq4!M;@R56kz5xnZ5S4 zQyIfg=xjwj;b^$yC-pQR8o$GO?RdtC#`svX9{Y3`pjw|aLm6AjFgJq;{kw^~L2ukf zPu}aFqq2n3OJostv!xN$o6lOnYw*e$#PICz;%05#=0Af`YMjRHQ4B?gN+nX`A;eNn z9RxbQ1!(Z%eCT~1Brk|DM!6dQ2QGh#oCMcVLlq;W7EFDgF@z?aL|NhsOa;=#!)GW6 w`3<8m5PIQdb8KzI1Oy;94X&X{oP^Sp1vL}r!W8Q-_UzEEdT%j literal 0 HcmV?d00001 diff --git a/include/MinHook.h b/include/MinHook.h new file mode 100644 index 0000000..492d83f --- /dev/null +++ b/include/MinHook.h @@ -0,0 +1,185 @@ +/* + * 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 + +#include + +// 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. + // pszProcName [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. + // pszProcName [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/buffer.c b/lib/MinHook/buffer.c new file mode 100644 index 0000000..940df65 --- /dev/null +++ b/lib/MinHook/buffer.c @@ -0,0 +1,312 @@ +/* + * 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. + */ + +#include +#include "buffer.h" + +// Size of each memory block. (= page size of VirtualAlloc) +#define MEMORY_BLOCK_SIZE 0x1000 + +// Max range for seeking a memory block. (= 1024MB) +#define MAX_MEMORY_RANGE 0x40000000 + +// Memory protection flags to check the executable address. +#define PAGE_EXECUTE_FLAGS \ + (PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY) + +// Memory slot. +typedef struct _MEMORY_SLOT +{ + union + { + struct _MEMORY_SLOT *pNext; + UINT8 buffer[MEMORY_SLOT_SIZE]; + }; +} MEMORY_SLOT, *PMEMORY_SLOT; + +// Memory block info. Placed at the head of each block. +typedef struct _MEMORY_BLOCK +{ + struct _MEMORY_BLOCK *pNext; + PMEMORY_SLOT pFree; // First element of the free slot list. + UINT usedCount; +} MEMORY_BLOCK, *PMEMORY_BLOCK; + +//------------------------------------------------------------------------- +// Global Variables: +//------------------------------------------------------------------------- + +// First element of the memory block list. +static PMEMORY_BLOCK g_pMemoryBlocks; + +//------------------------------------------------------------------------- +VOID InitializeBuffer(VOID) +{ + // Nothing to do for now. +} + +//------------------------------------------------------------------------- +VOID UninitializeBuffer(VOID) +{ + PMEMORY_BLOCK pBlock = g_pMemoryBlocks; + g_pMemoryBlocks = NULL; + + while (pBlock) + { + PMEMORY_BLOCK pNext = pBlock->pNext; + VirtualFree(pBlock, 0, MEM_RELEASE); + pBlock = pNext; + } +} + +//------------------------------------------------------------------------- +#if defined(_M_X64) || defined(__x86_64__) +static LPVOID FindPrevFreeRegion(LPVOID pAddress, LPVOID pMinAddr, DWORD dwAllocationGranularity) +{ + ULONG_PTR tryAddr = (ULONG_PTR)pAddress; + + // Round down to the allocation granularity. + tryAddr -= tryAddr % dwAllocationGranularity; + + // Start from the previous allocation granularity multiply. + tryAddr -= dwAllocationGranularity; + + while (tryAddr >= (ULONG_PTR)pMinAddr) + { + MEMORY_BASIC_INFORMATION mbi; + if (VirtualQuery((LPVOID)tryAddr, &mbi, sizeof(mbi)) == 0) + break; + + if (mbi.State == MEM_FREE) + return (LPVOID)tryAddr; + + if ((ULONG_PTR)mbi.AllocationBase < dwAllocationGranularity) + break; + + tryAddr = (ULONG_PTR)mbi.AllocationBase - dwAllocationGranularity; + } + + return NULL; +} +#endif + +//------------------------------------------------------------------------- +#if defined(_M_X64) || defined(__x86_64__) +static LPVOID FindNextFreeRegion(LPVOID pAddress, LPVOID pMaxAddr, DWORD dwAllocationGranularity) +{ + ULONG_PTR tryAddr = (ULONG_PTR)pAddress; + + // Round down to the allocation granularity. + tryAddr -= tryAddr % dwAllocationGranularity; + + // Start from the next allocation granularity multiply. + tryAddr += dwAllocationGranularity; + + while (tryAddr <= (ULONG_PTR)pMaxAddr) + { + MEMORY_BASIC_INFORMATION mbi; + if (VirtualQuery((LPVOID)tryAddr, &mbi, sizeof(mbi)) == 0) + break; + + if (mbi.State == MEM_FREE) + return (LPVOID)tryAddr; + + tryAddr = (ULONG_PTR)mbi.BaseAddress + mbi.RegionSize; + + // Round up to the next allocation granularity. + tryAddr += dwAllocationGranularity - 1; + tryAddr -= tryAddr % dwAllocationGranularity; + } + + return NULL; +} +#endif + +//------------------------------------------------------------------------- +static PMEMORY_BLOCK GetMemoryBlock(LPVOID pOrigin) +{ + PMEMORY_BLOCK pBlock; +#if defined(_M_X64) || defined(__x86_64__) + ULONG_PTR minAddr; + ULONG_PTR maxAddr; + + SYSTEM_INFO si; + GetSystemInfo(&si); + minAddr = (ULONG_PTR)si.lpMinimumApplicationAddress; + maxAddr = (ULONG_PTR)si.lpMaximumApplicationAddress; + + // pOrigin ± 512MB + if ((ULONG_PTR)pOrigin > MAX_MEMORY_RANGE && minAddr < (ULONG_PTR)pOrigin - MAX_MEMORY_RANGE) + minAddr = (ULONG_PTR)pOrigin - MAX_MEMORY_RANGE; + + if (maxAddr > (ULONG_PTR)pOrigin + MAX_MEMORY_RANGE) + maxAddr = (ULONG_PTR)pOrigin + MAX_MEMORY_RANGE; + + // Make room for MEMORY_BLOCK_SIZE bytes. + maxAddr -= MEMORY_BLOCK_SIZE - 1; +#endif + + // Look the registered blocks for a reachable one. + for (pBlock = g_pMemoryBlocks; pBlock != NULL; pBlock = pBlock->pNext) + { +#if defined(_M_X64) || defined(__x86_64__) + // Ignore the blocks too far. + if ((ULONG_PTR)pBlock < minAddr || (ULONG_PTR)pBlock >= maxAddr) + continue; +#endif + // The block has at least one unused slot. + if (pBlock->pFree != NULL) + return pBlock; + } + +#if defined(_M_X64) || defined(__x86_64__) + // Alloc a new block above if not found. + { + LPVOID pAlloc = pOrigin; + while ((ULONG_PTR)pAlloc >= minAddr) + { + pAlloc = FindPrevFreeRegion(pAlloc, (LPVOID)minAddr, si.dwAllocationGranularity); + if (pAlloc == NULL) + break; + + pBlock = (PMEMORY_BLOCK)VirtualAlloc( + pAlloc, MEMORY_BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); + if (pBlock != NULL) + break; + } + } + + // Alloc a new block below if not found. + if (pBlock == NULL) + { + LPVOID pAlloc = pOrigin; + while ((ULONG_PTR)pAlloc <= maxAddr) + { + pAlloc = FindNextFreeRegion(pAlloc, (LPVOID)maxAddr, si.dwAllocationGranularity); + if (pAlloc == NULL) + break; + + pBlock = (PMEMORY_BLOCK)VirtualAlloc( + pAlloc, MEMORY_BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); + if (pBlock != NULL) + break; + } + } +#else + // In x86 mode, a memory block can be placed anywhere. + pBlock = (PMEMORY_BLOCK)VirtualAlloc( + NULL, MEMORY_BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); +#endif + + if (pBlock != NULL) + { + // Build a linked list of all the slots. + PMEMORY_SLOT pSlot = (PMEMORY_SLOT)pBlock + 1; + pBlock->pFree = NULL; + pBlock->usedCount = 0; + do + { + pSlot->pNext = pBlock->pFree; + pBlock->pFree = pSlot; + pSlot++; + } while ((ULONG_PTR)pSlot - (ULONG_PTR)pBlock <= MEMORY_BLOCK_SIZE - MEMORY_SLOT_SIZE); + + pBlock->pNext = g_pMemoryBlocks; + g_pMemoryBlocks = pBlock; + } + + return pBlock; +} + +//------------------------------------------------------------------------- +LPVOID AllocateBuffer(LPVOID pOrigin) +{ + PMEMORY_SLOT pSlot; + PMEMORY_BLOCK pBlock = GetMemoryBlock(pOrigin); + if (pBlock == NULL) + return NULL; + + // Remove an unused slot from the list. + pSlot = pBlock->pFree; + pBlock->pFree = pSlot->pNext; + pBlock->usedCount++; +#ifdef _DEBUG + // Fill the slot with INT3 for debugging. + memset(pSlot, 0xCC, sizeof(MEMORY_SLOT)); +#endif + return pSlot; +} + +//------------------------------------------------------------------------- +VOID FreeBuffer(LPVOID pBuffer) +{ + PMEMORY_BLOCK pBlock = g_pMemoryBlocks; + PMEMORY_BLOCK pPrev = NULL; + ULONG_PTR pTargetBlock = ((ULONG_PTR)pBuffer / MEMORY_BLOCK_SIZE) * MEMORY_BLOCK_SIZE; + + while (pBlock != NULL) + { + if ((ULONG_PTR)pBlock == pTargetBlock) + { + PMEMORY_SLOT pSlot = (PMEMORY_SLOT)pBuffer; +#ifdef _DEBUG + // Clear the released slot for debugging. + memset(pSlot, 0x00, sizeof(MEMORY_SLOT)); +#endif + // Restore the released slot to the list. + pSlot->pNext = pBlock->pFree; + pBlock->pFree = pSlot; + pBlock->usedCount--; + + // Free if unused. + if (pBlock->usedCount == 0) + { + if (pPrev) + pPrev->pNext = pBlock->pNext; + else + g_pMemoryBlocks = pBlock->pNext; + + VirtualFree(pBlock, 0, MEM_RELEASE); + } + + break; + } + + pPrev = pBlock; + pBlock = pBlock->pNext; + } +} + +//------------------------------------------------------------------------- +BOOL IsExecutableAddress(LPVOID pAddress) +{ + MEMORY_BASIC_INFORMATION mi; + VirtualQuery(pAddress, &mi, sizeof(mi)); + + return (mi.State == MEM_COMMIT && (mi.Protect & PAGE_EXECUTE_FLAGS)); +} diff --git a/lib/MinHook/buffer.h b/lib/MinHook/buffer.h new file mode 100644 index 0000000..204d551 --- /dev/null +++ b/lib/MinHook/buffer.h @@ -0,0 +1,42 @@ +/* + * 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 + +// Size of each memory slot. +#if defined(_M_X64) || defined(__x86_64__) + #define MEMORY_SLOT_SIZE 64 +#else + #define MEMORY_SLOT_SIZE 32 +#endif + +VOID InitializeBuffer(VOID); +VOID UninitializeBuffer(VOID); +LPVOID AllocateBuffer(LPVOID pOrigin); +VOID FreeBuffer(LPVOID pBuffer); +BOOL IsExecutableAddress(LPVOID pAddress); diff --git a/lib/MinHook/hde/hde32.c b/lib/MinHook/hde/hde32.c new file mode 100644 index 0000000..eb6af9b --- /dev/null +++ b/lib/MinHook/hde/hde32.c @@ -0,0 +1,324 @@ +/* + * Hacker Disassembler Engine 32 C + * Copyright (c) 2008-2009, Vyacheslav Patkov. + * All rights reserved. + * + */ + +#if defined(_M_IX86) || defined(__i386__) + +#include +#include "hde32.h" +#include "table32.h" + +unsigned int hde32_disasm(const void *code, hde32s *hs) +{ + uint8_t x, c, *p = (uint8_t *)code, cflags, opcode, pref = 0; + uint8_t *ht = hde32_table, m_mod, m_reg, m_rm, disp_size = 0; + + memset(hs, 0, sizeof(hde32s)); + + for (x = 16; x; x--) + switch (c = *p++) { + case 0xf3: + hs->p_rep = c; + pref |= PRE_F3; + break; + case 0xf2: + hs->p_rep = c; + pref |= PRE_F2; + break; + case 0xf0: + hs->p_lock = c; + pref |= PRE_LOCK; + break; + case 0x26: case 0x2e: case 0x36: + case 0x3e: case 0x64: case 0x65: + hs->p_seg = c; + pref |= PRE_SEG; + break; + case 0x66: + hs->p_66 = c; + pref |= PRE_66; + break; + case 0x67: + hs->p_67 = c; + pref |= PRE_67; + break; + default: + goto pref_done; + } + pref_done: + + hs->flags = (uint32_t)pref << 23; + + if (!pref) + pref |= PRE_NONE; + + if ((hs->opcode = c) == 0x0f) { + hs->opcode2 = c = *p++; + ht += DELTA_OPCODES; + } else if (c >= 0xa0 && c <= 0xa3) { + if (pref & PRE_67) + pref |= PRE_66; + else + pref &= ~PRE_66; + } + + opcode = c; + cflags = ht[ht[opcode / 4] + (opcode % 4)]; + + if (cflags == C_ERROR) { + hs->flags |= F_ERROR | F_ERROR_OPCODE; + cflags = 0; + if ((opcode & -3) == 0x24) + cflags++; + } + + x = 0; + if (cflags & C_GROUP) { + uint16_t t; + t = *(uint16_t *)(ht + (cflags & 0x7f)); + cflags = (uint8_t)t; + x = (uint8_t)(t >> 8); + } + + if (hs->opcode2) { + ht = hde32_table + DELTA_PREFIXES; + if (ht[ht[opcode / 4] + (opcode % 4)] & pref) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + } + + if (cflags & C_MODRM) { + hs->flags |= F_MODRM; + hs->modrm = c = *p++; + hs->modrm_mod = m_mod = c >> 6; + hs->modrm_rm = m_rm = c & 7; + hs->modrm_reg = m_reg = (c & 0x3f) >> 3; + + if (x && ((x << m_reg) & 0x80)) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + + if (!hs->opcode2 && opcode >= 0xd9 && opcode <= 0xdf) { + uint8_t t = opcode - 0xd9; + if (m_mod == 3) { + ht = hde32_table + DELTA_FPU_MODRM + t*8; + t = ht[m_reg] << m_rm; + } else { + ht = hde32_table + DELTA_FPU_REG; + t = ht[t] << m_reg; + } + if (t & 0x80) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + } + + if (pref & PRE_LOCK) { + if (m_mod == 3) { + hs->flags |= F_ERROR | F_ERROR_LOCK; + } else { + uint8_t *table_end, op = opcode; + if (hs->opcode2) { + ht = hde32_table + DELTA_OP2_LOCK_OK; + table_end = ht + DELTA_OP_ONLY_MEM - DELTA_OP2_LOCK_OK; + } else { + ht = hde32_table + DELTA_OP_LOCK_OK; + table_end = ht + DELTA_OP2_LOCK_OK - DELTA_OP_LOCK_OK; + op &= -2; + } + for (; ht != table_end; ht++) + if (*ht++ == op) { + if (!((*ht << m_reg) & 0x80)) + goto no_lock_error; + else + break; + } + hs->flags |= F_ERROR | F_ERROR_LOCK; + no_lock_error: + ; + } + } + + if (hs->opcode2) { + switch (opcode) { + case 0x20: case 0x22: + m_mod = 3; + if (m_reg > 4 || m_reg == 1) + goto error_operand; + else + goto no_error_operand; + case 0x21: case 0x23: + m_mod = 3; + if (m_reg == 4 || m_reg == 5) + goto error_operand; + else + goto no_error_operand; + } + } else { + switch (opcode) { + case 0x8c: + if (m_reg > 5) + goto error_operand; + else + goto no_error_operand; + case 0x8e: + if (m_reg == 1 || m_reg > 5) + goto error_operand; + else + goto no_error_operand; + } + } + + if (m_mod == 3) { + uint8_t *table_end; + if (hs->opcode2) { + ht = hde32_table + DELTA_OP2_ONLY_MEM; + table_end = ht + sizeof(hde32_table) - DELTA_OP2_ONLY_MEM; + } else { + ht = hde32_table + DELTA_OP_ONLY_MEM; + table_end = ht + DELTA_OP2_ONLY_MEM - DELTA_OP_ONLY_MEM; + } + for (; ht != table_end; ht += 2) + if (*ht++ == opcode) { + if ((*ht++ & pref) && !((*ht << m_reg) & 0x80)) + goto error_operand; + else + break; + } + goto no_error_operand; + } else if (hs->opcode2) { + switch (opcode) { + case 0x50: case 0xd7: case 0xf7: + if (pref & (PRE_NONE | PRE_66)) + goto error_operand; + break; + case 0xd6: + if (pref & (PRE_F2 | PRE_F3)) + goto error_operand; + break; + case 0xc5: + goto error_operand; + } + goto no_error_operand; + } else + goto no_error_operand; + + error_operand: + hs->flags |= F_ERROR | F_ERROR_OPERAND; + no_error_operand: + + c = *p++; + if (m_reg <= 1) { + if (opcode == 0xf6) + cflags |= C_IMM8; + else if (opcode == 0xf7) + cflags |= C_IMM_P66; + } + + switch (m_mod) { + case 0: + if (pref & PRE_67) { + if (m_rm == 6) + disp_size = 2; + } else + if (m_rm == 5) + disp_size = 4; + break; + case 1: + disp_size = 1; + break; + case 2: + disp_size = 2; + if (!(pref & PRE_67)) + disp_size <<= 1; + break; + } + + if (m_mod != 3 && m_rm == 4 && !(pref & PRE_67)) { + hs->flags |= F_SIB; + p++; + hs->sib = c; + hs->sib_scale = c >> 6; + hs->sib_index = (c & 0x3f) >> 3; + if ((hs->sib_base = c & 7) == 5 && !(m_mod & 1)) + disp_size = 4; + } + + p--; + switch (disp_size) { + case 1: + hs->flags |= F_DISP8; + hs->disp.disp8 = *p; + break; + case 2: + hs->flags |= F_DISP16; + hs->disp.disp16 = *(uint16_t *)p; + break; + case 4: + hs->flags |= F_DISP32; + hs->disp.disp32 = *(uint32_t *)p; + break; + } + p += disp_size; + } else if (pref & PRE_LOCK) + hs->flags |= F_ERROR | F_ERROR_LOCK; + + if (cflags & C_IMM_P66) { + if (cflags & C_REL32) { + if (pref & PRE_66) { + hs->flags |= F_IMM16 | F_RELATIVE; + hs->imm.imm16 = *(uint16_t *)p; + p += 2; + goto disasm_done; + } + goto rel32_ok; + } + if (pref & PRE_66) { + hs->flags |= F_IMM16; + hs->imm.imm16 = *(uint16_t *)p; + p += 2; + } else { + hs->flags |= F_IMM32; + hs->imm.imm32 = *(uint32_t *)p; + p += 4; + } + } + + if (cflags & C_IMM16) { + if (hs->flags & F_IMM32) { + hs->flags |= F_IMM16; + hs->disp.disp16 = *(uint16_t *)p; + } else if (hs->flags & F_IMM16) { + hs->flags |= F_2IMM16; + hs->disp.disp16 = *(uint16_t *)p; + } else { + hs->flags |= F_IMM16; + hs->imm.imm16 = *(uint16_t *)p; + } + p += 2; + } + if (cflags & C_IMM8) { + hs->flags |= F_IMM8; + hs->imm.imm8 = *p++; + } + + if (cflags & C_REL32) { + rel32_ok: + hs->flags |= F_IMM32 | F_RELATIVE; + hs->imm.imm32 = *(uint32_t *)p; + p += 4; + } else if (cflags & C_REL8) { + hs->flags |= F_IMM8 | F_RELATIVE; + hs->imm.imm8 = *p++; + } + + disasm_done: + + if ((hs->len = (uint8_t)(p-(uint8_t *)code)) > 15) { + hs->flags |= F_ERROR | F_ERROR_LENGTH; + hs->len = 15; + } + + return (unsigned int)hs->len; +} + +#endif // defined(_M_IX86) || defined(__i386__) diff --git a/lib/MinHook/hde/hde32.h b/lib/MinHook/hde/hde32.h new file mode 100644 index 0000000..1112450 --- /dev/null +++ b/lib/MinHook/hde/hde32.h @@ -0,0 +1,105 @@ +/* + * Hacker Disassembler Engine 32 + * Copyright (c) 2006-2009, Vyacheslav Patkov. + * All rights reserved. + * + * hde32.h: C/C++ header file + * + */ + +#ifndef _HDE32_H_ +#define _HDE32_H_ + +/* stdint.h - C99 standard header + * http://en.wikipedia.org/wiki/stdint.h + * + * if your compiler doesn't contain "stdint.h" header (for + * example, Microsoft Visual C++), you can download file: + * http://www.azillionmonkeys.com/qed/pstdint.h + * and change next line to: + * #include "pstdint.h" + */ +#include "pstdint.h" + +#define F_MODRM 0x00000001 +#define F_SIB 0x00000002 +#define F_IMM8 0x00000004 +#define F_IMM16 0x00000008 +#define F_IMM32 0x00000010 +#define F_DISP8 0x00000020 +#define F_DISP16 0x00000040 +#define F_DISP32 0x00000080 +#define F_RELATIVE 0x00000100 +#define F_2IMM16 0x00000800 +#define F_ERROR 0x00001000 +#define F_ERROR_OPCODE 0x00002000 +#define F_ERROR_LENGTH 0x00004000 +#define F_ERROR_LOCK 0x00008000 +#define F_ERROR_OPERAND 0x00010000 +#define F_PREFIX_REPNZ 0x01000000 +#define F_PREFIX_REPX 0x02000000 +#define F_PREFIX_REP 0x03000000 +#define F_PREFIX_66 0x04000000 +#define F_PREFIX_67 0x08000000 +#define F_PREFIX_LOCK 0x10000000 +#define F_PREFIX_SEG 0x20000000 +#define F_PREFIX_ANY 0x3f000000 + +#define PREFIX_SEGMENT_CS 0x2e +#define PREFIX_SEGMENT_SS 0x36 +#define PREFIX_SEGMENT_DS 0x3e +#define PREFIX_SEGMENT_ES 0x26 +#define PREFIX_SEGMENT_FS 0x64 +#define PREFIX_SEGMENT_GS 0x65 +#define PREFIX_LOCK 0xf0 +#define PREFIX_REPNZ 0xf2 +#define PREFIX_REPX 0xf3 +#define PREFIX_OPERAND_SIZE 0x66 +#define PREFIX_ADDRESS_SIZE 0x67 + +#pragma pack(push,1) + +typedef struct { + uint8_t len; + uint8_t p_rep; + uint8_t p_lock; + uint8_t p_seg; + uint8_t p_66; + uint8_t p_67; + uint8_t opcode; + uint8_t opcode2; + uint8_t modrm; + uint8_t modrm_mod; + uint8_t modrm_reg; + uint8_t modrm_rm; + uint8_t sib; + uint8_t sib_scale; + uint8_t sib_index; + uint8_t sib_base; + union { + uint8_t imm8; + uint16_t imm16; + uint32_t imm32; + } imm; + union { + uint8_t disp8; + uint16_t disp16; + uint32_t disp32; + } disp; + uint32_t flags; +} hde32s; + +#pragma pack(pop) + +#ifdef __cplusplus +extern "C" { +#endif + +/* __cdecl */ +unsigned int hde32_disasm(const void *code, hde32s *hs); + +#ifdef __cplusplus +} +#endif + +#endif /* _HDE32_H_ */ diff --git a/lib/MinHook/hde/hde64.c b/lib/MinHook/hde/hde64.c new file mode 100644 index 0000000..ce773b1 --- /dev/null +++ b/lib/MinHook/hde/hde64.c @@ -0,0 +1,335 @@ +/* + * Hacker Disassembler Engine 64 C + * Copyright (c) 2008-2009, Vyacheslav Patkov. + * All rights reserved. + * + */ + +#if defined(_M_X64) || defined(__x86_64__) + +#include +#include "hde64.h" +#include "table64.h" + +unsigned int hde64_disasm(const void *code, hde64s *hs) +{ + uint8_t x, c, *p = (uint8_t *)code, cflags, opcode, pref = 0; + uint8_t *ht = hde64_table, m_mod, m_reg, m_rm, disp_size = 0; + uint8_t op64 = 0; + + memset(hs, 0, sizeof(hde64s)); + + for (x = 16; x; x--) + switch (c = *p++) { + case 0xf3: + hs->p_rep = c; + pref |= PRE_F3; + break; + case 0xf2: + hs->p_rep = c; + pref |= PRE_F2; + break; + case 0xf0: + hs->p_lock = c; + pref |= PRE_LOCK; + break; + case 0x26: case 0x2e: case 0x36: + case 0x3e: case 0x64: case 0x65: + hs->p_seg = c; + pref |= PRE_SEG; + break; + case 0x66: + hs->p_66 = c; + pref |= PRE_66; + break; + case 0x67: + hs->p_67 = c; + pref |= PRE_67; + break; + default: + goto pref_done; + } + pref_done: + + hs->flags = (uint32_t)pref << 23; + + if (!pref) + pref |= PRE_NONE; + + if ((c & 0xf0) == 0x40) { + hs->flags |= F_PREFIX_REX; + if ((hs->rex_w = (c & 0xf) >> 3) && (*p & 0xf8) == 0xb8) + op64++; + hs->rex_r = (c & 7) >> 2; + hs->rex_x = (c & 3) >> 1; + hs->rex_b = c & 1; + if (((c = *p++) & 0xf0) == 0x40) { + opcode = c; + goto error_opcode; + } + } + + if ((hs->opcode = c) == 0x0f) { + hs->opcode2 = c = *p++; + ht += DELTA_OPCODES; + } else if (c >= 0xa0 && c <= 0xa3) { + op64++; + if (pref & PRE_67) + pref |= PRE_66; + else + pref &= ~PRE_66; + } + + opcode = c; + cflags = ht[ht[opcode / 4] + (opcode % 4)]; + + if (cflags == C_ERROR) { + error_opcode: + hs->flags |= F_ERROR | F_ERROR_OPCODE; + cflags = 0; + if ((opcode & -3) == 0x24) + cflags++; + } + + x = 0; + if (cflags & C_GROUP) { + uint16_t t; + t = *(uint16_t *)(ht + (cflags & 0x7f)); + cflags = (uint8_t)t; + x = (uint8_t)(t >> 8); + } + + if (hs->opcode2) { + ht = hde64_table + DELTA_PREFIXES; + if (ht[ht[opcode / 4] + (opcode % 4)] & pref) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + } + + if (cflags & C_MODRM) { + hs->flags |= F_MODRM; + hs->modrm = c = *p++; + hs->modrm_mod = m_mod = c >> 6; + hs->modrm_rm = m_rm = c & 7; + hs->modrm_reg = m_reg = (c & 0x3f) >> 3; + + if (x && ((x << m_reg) & 0x80)) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + + if (!hs->opcode2 && opcode >= 0xd9 && opcode <= 0xdf) { + uint8_t t = opcode - 0xd9; + if (m_mod == 3) { + ht = hde64_table + DELTA_FPU_MODRM + t*8; + t = ht[m_reg] << m_rm; + } else { + ht = hde64_table + DELTA_FPU_REG; + t = ht[t] << m_reg; + } + if (t & 0x80) + hs->flags |= F_ERROR | F_ERROR_OPCODE; + } + + if (pref & PRE_LOCK) { + if (m_mod == 3) { + hs->flags |= F_ERROR | F_ERROR_LOCK; + } else { + uint8_t *table_end, op = opcode; + if (hs->opcode2) { + ht = hde64_table + DELTA_OP2_LOCK_OK; + table_end = ht + DELTA_OP_ONLY_MEM - DELTA_OP2_LOCK_OK; + } else { + ht = hde64_table + DELTA_OP_LOCK_OK; + table_end = ht + DELTA_OP2_LOCK_OK - DELTA_OP_LOCK_OK; + op &= -2; + } + for (; ht != table_end; ht++) + if (*ht++ == op) { + if (!((*ht << m_reg) & 0x80)) + goto no_lock_error; + else + break; + } + hs->flags |= F_ERROR | F_ERROR_LOCK; + no_lock_error: + ; + } + } + + if (hs->opcode2) { + switch (opcode) { + case 0x20: case 0x22: + m_mod = 3; + if (m_reg > 4 || m_reg == 1) + goto error_operand; + else + goto no_error_operand; + case 0x21: case 0x23: + m_mod = 3; + if (m_reg == 4 || m_reg == 5) + goto error_operand; + else + goto no_error_operand; + } + } else { + switch (opcode) { + case 0x8c: + if (m_reg > 5) + goto error_operand; + else + goto no_error_operand; + case 0x8e: + if (m_reg == 1 || m_reg > 5) + goto error_operand; + else + goto no_error_operand; + } + } + + if (m_mod == 3) { + uint8_t *table_end; + if (hs->opcode2) { + ht = hde64_table + DELTA_OP2_ONLY_MEM; + table_end = ht + sizeof(hde64_table) - DELTA_OP2_ONLY_MEM; + } else { + ht = hde64_table + DELTA_OP_ONLY_MEM; + table_end = ht + DELTA_OP2_ONLY_MEM - DELTA_OP_ONLY_MEM; + } + for (; ht != table_end; ht += 2) + if (*ht++ == opcode) { + if ((*ht++ & pref) && !((*ht << m_reg) & 0x80)) + goto error_operand; + else + break; + } + goto no_error_operand; + } else if (hs->opcode2) { + switch (opcode) { + case 0x50: case 0xd7: case 0xf7: + if (pref & (PRE_NONE | PRE_66)) + goto error_operand; + break; + case 0xd6: + if (pref & (PRE_F2 | PRE_F3)) + goto error_operand; + break; + case 0xc5: + goto error_operand; + } + goto no_error_operand; + } else + goto no_error_operand; + + error_operand: + hs->flags |= F_ERROR | F_ERROR_OPERAND; + no_error_operand: + + c = *p++; + if (m_reg <= 1) { + if (opcode == 0xf6) + cflags |= C_IMM8; + else if (opcode == 0xf7) + cflags |= C_IMM_P66; + } + + switch (m_mod) { + case 0: + if (pref & PRE_67) { + if (m_rm == 6) + disp_size = 2; + } else + if (m_rm == 5) + disp_size = 4; + break; + case 1: + disp_size = 1; + break; + case 2: + disp_size = 2; + if (!(pref & PRE_67)) + disp_size <<= 1; + break; + } + + if (m_mod != 3 && m_rm == 4) { + hs->flags |= F_SIB; + p++; + hs->sib = c; + hs->sib_scale = c >> 6; + hs->sib_index = (c & 0x3f) >> 3; + if ((hs->sib_base = c & 7) == 5 && !(m_mod & 1)) + disp_size = 4; + } + + p--; + switch (disp_size) { + case 1: + hs->flags |= F_DISP8; + hs->disp.disp8 = *p; + break; + case 2: + hs->flags |= F_DISP16; + hs->disp.disp16 = *(uint16_t *)p; + break; + case 4: + hs->flags |= F_DISP32; + hs->disp.disp32 = *(uint32_t *)p; + break; + } + p += disp_size; + } else if (pref & PRE_LOCK) + hs->flags |= F_ERROR | F_ERROR_LOCK; + + if (cflags & C_IMM_P66) { + if (cflags & C_REL32) { + if (pref & PRE_66) { + hs->flags |= F_IMM16 | F_RELATIVE; + hs->imm.imm16 = *(uint16_t *)p; + p += 2; + goto disasm_done; + } + goto rel32_ok; + } + if (op64) { + hs->flags |= F_IMM64; + hs->imm.imm64 = *(uint64_t *)p; + p += 8; + } else if (!(pref & PRE_66)) { + hs->flags |= F_IMM32; + hs->imm.imm32 = *(uint32_t *)p; + p += 4; + } else + goto imm16_ok; + } + + + if (cflags & C_IMM16) { + imm16_ok: + hs->flags |= F_IMM16; + hs->imm.imm16 = *(uint16_t *)p; + p += 2; + } + if (cflags & C_IMM8) { + hs->flags |= F_IMM8; + hs->imm.imm8 = *p++; + } + + if (cflags & C_REL32) { + rel32_ok: + hs->flags |= F_IMM32 | F_RELATIVE; + hs->imm.imm32 = *(uint32_t *)p; + p += 4; + } else if (cflags & C_REL8) { + hs->flags |= F_IMM8 | F_RELATIVE; + hs->imm.imm8 = *p++; + } + + disasm_done: + + if ((hs->len = (uint8_t)(p-(uint8_t *)code)) > 15) { + hs->flags |= F_ERROR | F_ERROR_LENGTH; + hs->len = 15; + } + + return (unsigned int)hs->len; +} + +#endif // defined(_M_X64) || defined(__x86_64__) diff --git a/lib/MinHook/hde/hde64.h b/lib/MinHook/hde/hde64.h new file mode 100644 index 0000000..ecbf4df --- /dev/null +++ b/lib/MinHook/hde/hde64.h @@ -0,0 +1,112 @@ +/* + * Hacker Disassembler Engine 64 + * Copyright (c) 2008-2009, Vyacheslav Patkov. + * All rights reserved. + * + * hde64.h: C/C++ header file + * + */ + +#ifndef _HDE64_H_ +#define _HDE64_H_ + +/* stdint.h - C99 standard header + * http://en.wikipedia.org/wiki/stdint.h + * + * if your compiler doesn't contain "stdint.h" header (for + * example, Microsoft Visual C++), you can download file: + * http://www.azillionmonkeys.com/qed/pstdint.h + * and change next line to: + * #include "pstdint.h" + */ +#include "pstdint.h" + +#define F_MODRM 0x00000001 +#define F_SIB 0x00000002 +#define F_IMM8 0x00000004 +#define F_IMM16 0x00000008 +#define F_IMM32 0x00000010 +#define F_IMM64 0x00000020 +#define F_DISP8 0x00000040 +#define F_DISP16 0x00000080 +#define F_DISP32 0x00000100 +#define F_RELATIVE 0x00000200 +#define F_ERROR 0x00001000 +#define F_ERROR_OPCODE 0x00002000 +#define F_ERROR_LENGTH 0x00004000 +#define F_ERROR_LOCK 0x00008000 +#define F_ERROR_OPERAND 0x00010000 +#define F_PREFIX_REPNZ 0x01000000 +#define F_PREFIX_REPX 0x02000000 +#define F_PREFIX_REP 0x03000000 +#define F_PREFIX_66 0x04000000 +#define F_PREFIX_67 0x08000000 +#define F_PREFIX_LOCK 0x10000000 +#define F_PREFIX_SEG 0x20000000 +#define F_PREFIX_REX 0x40000000 +#define F_PREFIX_ANY 0x7f000000 + +#define PREFIX_SEGMENT_CS 0x2e +#define PREFIX_SEGMENT_SS 0x36 +#define PREFIX_SEGMENT_DS 0x3e +#define PREFIX_SEGMENT_ES 0x26 +#define PREFIX_SEGMENT_FS 0x64 +#define PREFIX_SEGMENT_GS 0x65 +#define PREFIX_LOCK 0xf0 +#define PREFIX_REPNZ 0xf2 +#define PREFIX_REPX 0xf3 +#define PREFIX_OPERAND_SIZE 0x66 +#define PREFIX_ADDRESS_SIZE 0x67 + +#pragma pack(push,1) + +typedef struct { + uint8_t len; + uint8_t p_rep; + uint8_t p_lock; + uint8_t p_seg; + uint8_t p_66; + uint8_t p_67; + uint8_t rex; + uint8_t rex_w; + uint8_t rex_r; + uint8_t rex_x; + uint8_t rex_b; + uint8_t opcode; + uint8_t opcode2; + uint8_t modrm; + uint8_t modrm_mod; + uint8_t modrm_reg; + uint8_t modrm_rm; + uint8_t sib; + uint8_t sib_scale; + uint8_t sib_index; + uint8_t sib_base; + union { + uint8_t imm8; + uint16_t imm16; + uint32_t imm32; + uint64_t imm64; + } imm; + union { + uint8_t disp8; + uint16_t disp16; + uint32_t disp32; + } disp; + uint32_t flags; +} hde64s; + +#pragma pack(pop) + +#ifdef __cplusplus +extern "C" { +#endif + +/* __cdecl */ +unsigned int hde64_disasm(const void *code, hde64s *hs); + +#ifdef __cplusplus +} +#endif + +#endif /* _HDE64_H_ */ diff --git a/lib/MinHook/hde/pstdint.h b/lib/MinHook/hde/pstdint.h new file mode 100644 index 0000000..84d82a0 --- /dev/null +++ b/lib/MinHook/hde/pstdint.h @@ -0,0 +1,39 @@ +/* + * 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 AUTHOR "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 AUTHOR 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 + +#include + +// Integer types for HDE. +typedef INT8 int8_t; +typedef INT16 int16_t; +typedef INT32 int32_t; +typedef INT64 int64_t; +typedef UINT8 uint8_t; +typedef UINT16 uint16_t; +typedef UINT32 uint32_t; +typedef UINT64 uint64_t; diff --git a/lib/MinHook/hde/table32.h b/lib/MinHook/hde/table32.h new file mode 100644 index 0000000..7b3e12e --- /dev/null +++ b/lib/MinHook/hde/table32.h @@ -0,0 +1,73 @@ +/* + * Hacker Disassembler Engine 32 C + * Copyright (c) 2008-2009, Vyacheslav Patkov. + * All rights reserved. + * + */ + +#define C_NONE 0x00 +#define C_MODRM 0x01 +#define C_IMM8 0x02 +#define C_IMM16 0x04 +#define C_IMM_P66 0x10 +#define C_REL8 0x20 +#define C_REL32 0x40 +#define C_GROUP 0x80 +#define C_ERROR 0xff + +#define PRE_ANY 0x00 +#define PRE_NONE 0x01 +#define PRE_F2 0x02 +#define PRE_F3 0x04 +#define PRE_66 0x08 +#define PRE_67 0x10 +#define PRE_LOCK 0x20 +#define PRE_SEG 0x40 +#define PRE_ALL 0xff + +#define DELTA_OPCODES 0x4a +#define DELTA_FPU_REG 0xf1 +#define DELTA_FPU_MODRM 0xf8 +#define DELTA_PREFIXES 0x130 +#define DELTA_OP_LOCK_OK 0x1a1 +#define DELTA_OP2_LOCK_OK 0x1b9 +#define DELTA_OP_ONLY_MEM 0x1cb +#define DELTA_OP2_ONLY_MEM 0x1da + +unsigned char hde32_table[] = { + 0xa3,0xa8,0xa3,0xa8,0xa3,0xa8,0xa3,0xa8,0xa3,0xa8,0xa3,0xa8,0xa3,0xa8,0xa3, + 0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xac,0xaa,0xb2,0xaa,0x9f,0x9f, + 0x9f,0x9f,0xb5,0xa3,0xa3,0xa4,0xaa,0xaa,0xba,0xaa,0x96,0xaa,0xa8,0xaa,0xc3, + 0xc3,0x96,0x96,0xb7,0xae,0xd6,0xbd,0xa3,0xc5,0xa3,0xa3,0x9f,0xc3,0x9c,0xaa, + 0xaa,0xac,0xaa,0xbf,0x03,0x7f,0x11,0x7f,0x01,0x7f,0x01,0x3f,0x01,0x01,0x90, + 0x82,0x7d,0x97,0x59,0x59,0x59,0x59,0x59,0x7f,0x59,0x59,0x60,0x7d,0x7f,0x7f, + 0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x9a,0x88,0x7d, + 0x59,0x50,0x50,0x50,0x50,0x59,0x59,0x59,0x59,0x61,0x94,0x61,0x9e,0x59,0x59, + 0x85,0x59,0x92,0xa3,0x60,0x60,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59, + 0x59,0x59,0x9f,0x01,0x03,0x01,0x04,0x03,0xd5,0x03,0xcc,0x01,0xbc,0x03,0xf0, + 0x10,0x10,0x10,0x10,0x50,0x50,0x50,0x50,0x14,0x20,0x20,0x20,0x20,0x01,0x01, + 0x01,0x01,0xc4,0x02,0x10,0x00,0x00,0x00,0x00,0x01,0x01,0xc0,0xc2,0x10,0x11, + 0x02,0x03,0x11,0x03,0x03,0x04,0x00,0x00,0x14,0x00,0x02,0x00,0x00,0xc6,0xc8, + 0x02,0x02,0x02,0x02,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xca, + 0x01,0x01,0x01,0x00,0x06,0x00,0x04,0x00,0xc0,0xc2,0x01,0x01,0x03,0x01,0xff, + 0xff,0x01,0x00,0x03,0xc4,0xc4,0xc6,0x03,0x01,0x01,0x01,0xff,0x03,0x03,0x03, + 0xc8,0x40,0x00,0x0a,0x00,0x04,0x00,0x00,0x00,0x00,0x7f,0x00,0x33,0x01,0x00, + 0x00,0x00,0x00,0x00,0x00,0xff,0xbf,0xff,0xff,0x00,0x00,0x00,0x00,0x07,0x00, + 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xff,0xff,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x7f,0x00,0x00,0xff,0x4a,0x4a,0x4a,0x4a,0x4b,0x52,0x4a,0x4a,0x4a,0x4a,0x4f, + 0x4c,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x55,0x45,0x40,0x4a,0x4a,0x4a, + 0x45,0x59,0x4d,0x46,0x4a,0x5d,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a, + 0x4a,0x4a,0x4a,0x4a,0x4a,0x61,0x63,0x67,0x4e,0x4a,0x4a,0x6b,0x6d,0x4a,0x4a, + 0x45,0x6d,0x4a,0x4a,0x44,0x45,0x4a,0x4a,0x00,0x00,0x00,0x02,0x0d,0x06,0x06, + 0x06,0x06,0x0e,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x00,0x06,0x06,0x02,0x06, + 0x00,0x0a,0x0a,0x07,0x07,0x06,0x02,0x05,0x05,0x02,0x02,0x00,0x00,0x04,0x04, + 0x04,0x04,0x00,0x00,0x00,0x0e,0x05,0x06,0x06,0x06,0x01,0x06,0x00,0x00,0x08, + 0x00,0x10,0x00,0x18,0x00,0x20,0x00,0x28,0x00,0x30,0x00,0x80,0x01,0x82,0x01, + 0x86,0x00,0xf6,0xcf,0xfe,0x3f,0xab,0x00,0xb0,0x00,0xb1,0x00,0xb3,0x00,0xba, + 0xf8,0xbb,0x00,0xc0,0x00,0xc1,0x00,0xc7,0xbf,0x62,0xff,0x00,0x8d,0xff,0x00, + 0xc4,0xff,0x00,0xc5,0xff,0x00,0xff,0xff,0xeb,0x01,0xff,0x0e,0x12,0x08,0x00, + 0x13,0x09,0x00,0x16,0x08,0x00,0x17,0x09,0x00,0x2b,0x09,0x00,0xae,0xff,0x07, + 0xb2,0xff,0x00,0xb4,0xff,0x00,0xb5,0xff,0x00,0xc3,0x01,0x00,0xc7,0xff,0xbf, + 0xe7,0x08,0x00,0xf0,0x02,0x00 +}; diff --git a/lib/MinHook/hde/table64.h b/lib/MinHook/hde/table64.h new file mode 100644 index 0000000..01d4541 --- /dev/null +++ b/lib/MinHook/hde/table64.h @@ -0,0 +1,74 @@ +/* + * Hacker Disassembler Engine 64 C + * Copyright (c) 2008-2009, Vyacheslav Patkov. + * All rights reserved. + * + */ + +#define C_NONE 0x00 +#define C_MODRM 0x01 +#define C_IMM8 0x02 +#define C_IMM16 0x04 +#define C_IMM_P66 0x10 +#define C_REL8 0x20 +#define C_REL32 0x40 +#define C_GROUP 0x80 +#define C_ERROR 0xff + +#define PRE_ANY 0x00 +#define PRE_NONE 0x01 +#define PRE_F2 0x02 +#define PRE_F3 0x04 +#define PRE_66 0x08 +#define PRE_67 0x10 +#define PRE_LOCK 0x20 +#define PRE_SEG 0x40 +#define PRE_ALL 0xff + +#define DELTA_OPCODES 0x4a +#define DELTA_FPU_REG 0xfd +#define DELTA_FPU_MODRM 0x104 +#define DELTA_PREFIXES 0x13c +#define DELTA_OP_LOCK_OK 0x1ae +#define DELTA_OP2_LOCK_OK 0x1c6 +#define DELTA_OP_ONLY_MEM 0x1d8 +#define DELTA_OP2_ONLY_MEM 0x1e7 + +unsigned char hde64_table[] = { + 0xa5,0xaa,0xa5,0xb8,0xa5,0xaa,0xa5,0xaa,0xa5,0xb8,0xa5,0xb8,0xa5,0xb8,0xa5, + 0xb8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xac,0xc0,0xcc,0xc0,0xa1,0xa1, + 0xa1,0xa1,0xb1,0xa5,0xa5,0xa6,0xc0,0xc0,0xd7,0xda,0xe0,0xc0,0xe4,0xc0,0xea, + 0xea,0xe0,0xe0,0x98,0xc8,0xee,0xf1,0xa5,0xd3,0xa5,0xa5,0xa1,0xea,0x9e,0xc0, + 0xc0,0xc2,0xc0,0xe6,0x03,0x7f,0x11,0x7f,0x01,0x7f,0x01,0x3f,0x01,0x01,0xab, + 0x8b,0x90,0x64,0x5b,0x5b,0x5b,0x5b,0x5b,0x92,0x5b,0x5b,0x76,0x90,0x92,0x92, + 0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x6a,0x73,0x90, + 0x5b,0x52,0x52,0x52,0x52,0x5b,0x5b,0x5b,0x5b,0x77,0x7c,0x77,0x85,0x5b,0x5b, + 0x70,0x5b,0x7a,0xaf,0x76,0x76,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b, + 0x5b,0x5b,0x86,0x01,0x03,0x01,0x04,0x03,0xd5,0x03,0xd5,0x03,0xcc,0x01,0xbc, + 0x03,0xf0,0x03,0x03,0x04,0x00,0x50,0x50,0x50,0x50,0xff,0x20,0x20,0x20,0x20, + 0x01,0x01,0x01,0x01,0xc4,0x02,0x10,0xff,0xff,0xff,0x01,0x00,0x03,0x11,0xff, + 0x03,0xc4,0xc6,0xc8,0x02,0x10,0x00,0xff,0xcc,0x01,0x01,0x01,0x00,0x00,0x00, + 0x00,0x01,0x01,0x03,0x01,0xff,0xff,0xc0,0xc2,0x10,0x11,0x02,0x03,0x01,0x01, + 0x01,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x10, + 0x10,0x10,0x10,0x02,0x10,0x00,0x00,0xc6,0xc8,0x02,0x02,0x02,0x02,0x06,0x00, + 0x04,0x00,0x02,0xff,0x00,0xc0,0xc2,0x01,0x01,0x03,0x03,0x03,0xca,0x40,0x00, + 0x0a,0x00,0x04,0x00,0x00,0x00,0x00,0x7f,0x00,0x33,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0xff,0xbf,0xff,0xff,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0xff,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, + 0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00, + 0xff,0x40,0x40,0x40,0x40,0x41,0x49,0x40,0x40,0x40,0x40,0x4c,0x42,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x4f,0x44,0x53,0x40,0x40,0x40,0x44,0x57,0x43, + 0x5c,0x40,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x64,0x66,0x6e,0x6b,0x40,0x40,0x6a,0x46,0x40,0x40,0x44,0x46,0x40, + 0x40,0x5b,0x44,0x40,0x40,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x01,0x06, + 0x06,0x02,0x06,0x06,0x00,0x06,0x00,0x0a,0x0a,0x00,0x00,0x00,0x02,0x07,0x07, + 0x06,0x02,0x0d,0x06,0x06,0x06,0x0e,0x05,0x05,0x02,0x02,0x00,0x00,0x04,0x04, + 0x04,0x04,0x05,0x06,0x06,0x06,0x00,0x00,0x00,0x0e,0x00,0x00,0x08,0x00,0x10, + 0x00,0x18,0x00,0x20,0x00,0x28,0x00,0x30,0x00,0x80,0x01,0x82,0x01,0x86,0x00, + 0xf6,0xcf,0xfe,0x3f,0xab,0x00,0xb0,0x00,0xb1,0x00,0xb3,0x00,0xba,0xf8,0xbb, + 0x00,0xc0,0x00,0xc1,0x00,0xc7,0xbf,0x62,0xff,0x00,0x8d,0xff,0x00,0xc4,0xff, + 0x00,0xc5,0xff,0x00,0xff,0xff,0xeb,0x01,0xff,0x0e,0x12,0x08,0x00,0x13,0x09, + 0x00,0x16,0x08,0x00,0x17,0x09,0x00,0x2b,0x09,0x00,0xae,0xff,0x07,0xb2,0xff, + 0x00,0xb4,0xff,0x00,0xb5,0xff,0x00,0xc3,0x01,0x00,0xc7,0xff,0xbf,0xe7,0x08, + 0x00,0xf0,0x02,0x00 +}; diff --git a/lib/MinHook/hook.c b/lib/MinHook/hook.c new file mode 100644 index 0000000..06f5696 --- /dev/null +++ b/lib/MinHook/hook.c @@ -0,0 +1,939 @@ +/* + * 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. + */ + +#include +#include +#include + +#include "../include/MinHook.h" +#include "buffer.h" +#include "trampoline.h" + +#ifndef ARRAYSIZE + #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) +#endif + +// Initial capacity of the HOOK_ENTRY buffer. +#define INITIAL_HOOK_CAPACITY 32 + +// Initial capacity of the thread IDs buffer. +#define INITIAL_THREAD_CAPACITY 128 + +// Special hook position values. +#define INVALID_HOOK_POS UINT_MAX +#define ALL_HOOKS_POS UINT_MAX + +// Freeze() action argument defines. +#define ACTION_DISABLE 0 +#define ACTION_ENABLE 1 +#define ACTION_APPLY_QUEUED 2 + +// Thread access rights for suspending/resuming threads. +#define THREAD_ACCESS \ + (THREAD_SUSPEND_RESUME | THREAD_GET_CONTEXT | THREAD_QUERY_INFORMATION | THREAD_SET_CONTEXT) + +// Hook information. +typedef struct _HOOK_ENTRY +{ + LPVOID pTarget; // Address of the target function. + LPVOID pDetour; // Address of the detour or relay function. + LPVOID pTrampoline; // Address of the trampoline function. + UINT8 backup[8]; // Original prologue of the target function. + + UINT8 patchAbove : 1; // Uses the hot patch area. + UINT8 isEnabled : 1; // Enabled. + UINT8 queueEnable : 1; // Queued for enabling/disabling when != isEnabled. + + UINT nIP : 4; // Count of the instruction boundaries. + UINT8 oldIPs[8]; // Instruction boundaries of the target function. + UINT8 newIPs[8]; // Instruction boundaries of the trampoline function. +} HOOK_ENTRY, *PHOOK_ENTRY; + +// Suspended threads for Freeze()/Unfreeze(). +typedef struct _FROZEN_THREADS +{ + LPDWORD pItems; // Data heap + UINT capacity; // Size of allocated data heap, items + UINT size; // Actual number of data items +} FROZEN_THREADS, *PFROZEN_THREADS; + +//------------------------------------------------------------------------- +// Global Variables: +//------------------------------------------------------------------------- + +// Spin lock flag for EnterSpinLock()/LeaveSpinLock(). +static volatile LONG g_isLocked = FALSE; + +// Private heap handle. If not NULL, this library is initialized. +static HANDLE g_hHeap = NULL; + +// Hook entries. +static struct +{ + PHOOK_ENTRY pItems; // Data heap + UINT capacity; // Size of allocated data heap, items + UINT size; // Actual number of data items +} g_hooks; + +//------------------------------------------------------------------------- +// Returns INVALID_HOOK_POS if not found. +static UINT FindHookEntry(LPVOID pTarget) +{ + UINT i; + for (i = 0; i < g_hooks.size; ++i) + { + if ((ULONG_PTR)pTarget == (ULONG_PTR)g_hooks.pItems[i].pTarget) + return i; + } + + return INVALID_HOOK_POS; +} + +//------------------------------------------------------------------------- +static PHOOK_ENTRY AddHookEntry() +{ + if (g_hooks.pItems == NULL) + { + g_hooks.capacity = INITIAL_HOOK_CAPACITY; + g_hooks.pItems = (PHOOK_ENTRY)HeapAlloc( + g_hHeap, 0, g_hooks.capacity * sizeof(HOOK_ENTRY)); + if (g_hooks.pItems == NULL) + return NULL; + } + else if (g_hooks.size >= g_hooks.capacity) + { + PHOOK_ENTRY p = (PHOOK_ENTRY)HeapReAlloc( + g_hHeap, 0, g_hooks.pItems, (g_hooks.capacity * 2) * sizeof(HOOK_ENTRY)); + if (p == NULL) + return NULL; + + g_hooks.capacity *= 2; + g_hooks.pItems = p; + } + + return &g_hooks.pItems[g_hooks.size++]; +} + +//------------------------------------------------------------------------- +static VOID DeleteHookEntry(UINT pos) +{ + if (pos < g_hooks.size - 1) + g_hooks.pItems[pos] = g_hooks.pItems[g_hooks.size - 1]; + + g_hooks.size--; + + if (g_hooks.capacity / 2 >= INITIAL_HOOK_CAPACITY && g_hooks.capacity / 2 >= g_hooks.size) + { + PHOOK_ENTRY p = (PHOOK_ENTRY)HeapReAlloc( + g_hHeap, 0, g_hooks.pItems, (g_hooks.capacity / 2) * sizeof(HOOK_ENTRY)); + if (p == NULL) + return; + + g_hooks.capacity /= 2; + g_hooks.pItems = p; + } +} + +//------------------------------------------------------------------------- +static DWORD_PTR FindOldIP(PHOOK_ENTRY pHook, DWORD_PTR ip) +{ + UINT i; + + if (pHook->patchAbove && ip == ((DWORD_PTR)pHook->pTarget - sizeof(JMP_REL))) + return (DWORD_PTR)pHook->pTarget; + + for (i = 0; i < pHook->nIP; ++i) + { + if (ip == ((DWORD_PTR)pHook->pTrampoline + pHook->newIPs[i])) + return (DWORD_PTR)pHook->pTarget + pHook->oldIPs[i]; + } + +#if defined(_M_X64) || defined(__x86_64__) + // Check relay function. + if (ip == (DWORD_PTR)pHook->pDetour) + return (DWORD_PTR)pHook->pTarget; +#endif + + return 0; +} + +//------------------------------------------------------------------------- +static DWORD_PTR FindNewIP(PHOOK_ENTRY pHook, DWORD_PTR ip) +{ + UINT i; + for (i = 0; i < pHook->nIP; ++i) + { + if (ip == ((DWORD_PTR)pHook->pTarget + pHook->oldIPs[i])) + return (DWORD_PTR)pHook->pTrampoline + pHook->newIPs[i]; + } + + return 0; +} + +//------------------------------------------------------------------------- +static VOID ProcessThreadIPs(HANDLE hThread, UINT pos, UINT action) +{ + // If the thread suspended in the overwritten area, + // move IP to the proper address. + + CONTEXT c; +#if defined(_M_X64) || defined(__x86_64__) + DWORD64 *pIP = &c.Rip; +#else + DWORD *pIP = &c.Eip; +#endif + UINT count; + + c.ContextFlags = CONTEXT_CONTROL; + if (!GetThreadContext(hThread, &c)) + return; + + if (pos == ALL_HOOKS_POS) + { + pos = 0; + count = g_hooks.size; + } + else + { + count = pos + 1; + } + + for (; pos < count; ++pos) + { + PHOOK_ENTRY pHook = &g_hooks.pItems[pos]; + BOOL enable; + DWORD_PTR ip; + + switch (action) + { + case ACTION_DISABLE: + enable = FALSE; + break; + + case ACTION_ENABLE: + enable = TRUE; + break; + + default: // ACTION_APPLY_QUEUED + enable = pHook->queueEnable; + break; + } + if (pHook->isEnabled == enable) + continue; + + if (enable) + ip = FindNewIP(pHook, *pIP); + else + ip = FindOldIP(pHook, *pIP); + + if (ip != 0) + { + *pIP = ip; + SetThreadContext(hThread, &c); + } + } +} + +//------------------------------------------------------------------------- +static BOOL EnumerateThreads(PFROZEN_THREADS pThreads) +{ + BOOL succeeded = FALSE; + + HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); + if (hSnapshot != INVALID_HANDLE_VALUE) + { + THREADENTRY32 te; + te.dwSize = sizeof(THREADENTRY32); + if (Thread32First(hSnapshot, &te)) + { + succeeded = TRUE; + do + { + if (te.dwSize >= (FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) + sizeof(DWORD)) + && te.th32OwnerProcessID == GetCurrentProcessId() + && te.th32ThreadID != GetCurrentThreadId()) + { + if (pThreads->pItems == NULL) + { + pThreads->capacity = INITIAL_THREAD_CAPACITY; + pThreads->pItems + = (LPDWORD)HeapAlloc(g_hHeap, 0, pThreads->capacity * sizeof(DWORD)); + if (pThreads->pItems == NULL) + { + succeeded = FALSE; + break; + } + } + else if (pThreads->size >= pThreads->capacity) + { + LPDWORD p; + pThreads->capacity *= 2; + p = (LPDWORD)HeapReAlloc( + g_hHeap, 0, pThreads->pItems, pThreads->capacity * sizeof(DWORD)); + if (p == NULL) + { + succeeded = FALSE; + break; + } + + pThreads->pItems = p; + } + pThreads->pItems[pThreads->size++] = te.th32ThreadID; + } + + te.dwSize = sizeof(THREADENTRY32); + } while (Thread32Next(hSnapshot, &te)); + + if (succeeded && GetLastError() != ERROR_NO_MORE_FILES) + succeeded = FALSE; + + if (!succeeded && pThreads->pItems != NULL) + { + HeapFree(g_hHeap, 0, pThreads->pItems); + pThreads->pItems = NULL; + } + } + CloseHandle(hSnapshot); + } + + return succeeded; +} + +//------------------------------------------------------------------------- +static MH_STATUS Freeze(PFROZEN_THREADS pThreads, UINT pos, UINT action) +{ + MH_STATUS status = MH_OK; + + pThreads->pItems = NULL; + pThreads->capacity = 0; + pThreads->size = 0; + if (!EnumerateThreads(pThreads)) + { + status = MH_ERROR_MEMORY_ALLOC; + } + else if (pThreads->pItems != NULL) + { + UINT i; + for (i = 0; i < pThreads->size; ++i) + { + HANDLE hThread = OpenThread(THREAD_ACCESS, FALSE, pThreads->pItems[i]); + BOOL suspended = FALSE; + if (hThread != NULL) + { + DWORD result = SuspendThread(hThread); + if (result != 0xFFFFFFFF) + { + suspended = TRUE; + ProcessThreadIPs(hThread, pos, action); + } + CloseHandle(hThread); + } + + if (!suspended) + { + // Mark thread as not suspended, so it's not resumed later on. + pThreads->pItems[i] = 0; + } + } + } + + return status; +} + +//------------------------------------------------------------------------- +static VOID Unfreeze(PFROZEN_THREADS pThreads) +{ + if (pThreads->pItems != NULL) + { + UINT i; + for (i = 0; i < pThreads->size; ++i) + { + DWORD threadId = pThreads->pItems[i]; + if (threadId != 0) + { + HANDLE hThread = OpenThread(THREAD_ACCESS, FALSE, threadId); + if (hThread != NULL) + { + ResumeThread(hThread); + CloseHandle(hThread); + } + } + } + + HeapFree(g_hHeap, 0, pThreads->pItems); + } +} + +//------------------------------------------------------------------------- +static MH_STATUS EnableHookLL(UINT pos, BOOL enable) +{ + PHOOK_ENTRY pHook = &g_hooks.pItems[pos]; + DWORD oldProtect; + SIZE_T patchSize = sizeof(JMP_REL); + LPBYTE pPatchTarget = (LPBYTE)pHook->pTarget; + + if (pHook->patchAbove) + { + pPatchTarget -= sizeof(JMP_REL); + patchSize += sizeof(JMP_REL_SHORT); + } + + if (!VirtualProtect(pPatchTarget, patchSize, PAGE_EXECUTE_READWRITE, &oldProtect)) + return MH_ERROR_MEMORY_PROTECT; + + if (enable) + { + PJMP_REL pJmp = (PJMP_REL)pPatchTarget; + pJmp->opcode = 0xE9; + pJmp->operand = (INT32)((LPBYTE)pHook->pDetour - (pPatchTarget + sizeof(JMP_REL))); + + if (pHook->patchAbove) + { + PJMP_REL_SHORT pShortJmp = (PJMP_REL_SHORT)pHook->pTarget; + pShortJmp->opcode = 0xEB; + pShortJmp->operand = (INT8)(0 - (sizeof(JMP_REL_SHORT) + sizeof(JMP_REL))); + } + } + else + { + if (pHook->patchAbove) + memcpy(pPatchTarget, pHook->backup, sizeof(JMP_REL) + sizeof(JMP_REL_SHORT)); + else + memcpy(pPatchTarget, pHook->backup, sizeof(JMP_REL)); + } + + VirtualProtect(pPatchTarget, patchSize, oldProtect, &oldProtect); + + // Just-in-case measure. + FlushInstructionCache(GetCurrentProcess(), pPatchTarget, patchSize); + + pHook->isEnabled = enable; + pHook->queueEnable = enable; + + return MH_OK; +} + +//------------------------------------------------------------------------- +static MH_STATUS EnableAllHooksLL(BOOL enable) +{ + MH_STATUS status = MH_OK; + UINT i, first = INVALID_HOOK_POS; + + for (i = 0; i < g_hooks.size; ++i) + { + if (g_hooks.pItems[i].isEnabled != enable) + { + first = i; + break; + } + } + + if (first != INVALID_HOOK_POS) + { + FROZEN_THREADS threads; + status = Freeze(&threads, ALL_HOOKS_POS, enable ? ACTION_ENABLE : ACTION_DISABLE); + if (status == MH_OK) + { + for (i = first; i < g_hooks.size; ++i) + { + if (g_hooks.pItems[i].isEnabled != enable) + { + status = EnableHookLL(i, enable); + if (status != MH_OK) + break; + } + } + + Unfreeze(&threads); + } + } + + return status; +} + +//------------------------------------------------------------------------- +static VOID EnterSpinLock(VOID) +{ + SIZE_T spinCount = 0; + + // Wait until the flag is FALSE. + while (InterlockedCompareExchange(&g_isLocked, TRUE, FALSE) != FALSE) + { + // No need to generate a memory barrier here, since InterlockedCompareExchange() + // generates a full memory barrier itself. + + // Prevent the loop from being too busy. + if (spinCount < 32) + Sleep(0); + else + Sleep(1); + + spinCount++; + } +} + +//------------------------------------------------------------------------- +static VOID LeaveSpinLock(VOID) +{ + // No need to generate a memory barrier here, since InterlockedExchange() + // generates a full memory barrier itself. + + InterlockedExchange(&g_isLocked, FALSE); +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_Initialize(VOID) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap == NULL) + { + g_hHeap = HeapCreate(0, 0, 0); + if (g_hHeap != NULL) + { + // Initialize the internal function buffer. + InitializeBuffer(); + } + else + { + status = MH_ERROR_MEMORY_ALLOC; + } + } + else + { + status = MH_ERROR_ALREADY_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_Uninitialize(VOID) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + status = EnableAllHooksLL(FALSE); + if (status == MH_OK) + { + // Free the internal function buffer. + + // HeapFree is actually not required, but some tools detect a false + // memory leak without HeapFree. + + UninitializeBuffer(); + + HeapFree(g_hHeap, 0, g_hooks.pItems); + HeapDestroy(g_hHeap); + + g_hHeap = NULL; + + g_hooks.pItems = NULL; + g_hooks.capacity = 0; + g_hooks.size = 0; + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_CreateHook(LPVOID pTarget, LPVOID pDetour, LPVOID *ppOriginal) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + if (IsExecutableAddress(pTarget) && IsExecutableAddress(pDetour)) + { + UINT pos = FindHookEntry(pTarget); + if (pos == INVALID_HOOK_POS) + { + LPVOID pBuffer = AllocateBuffer(pTarget); + if (pBuffer != NULL) + { + TRAMPOLINE ct; + + ct.pTarget = pTarget; + ct.pDetour = pDetour; + ct.pTrampoline = pBuffer; + if (CreateTrampolineFunction(&ct)) + { + PHOOK_ENTRY pHook = AddHookEntry(); + if (pHook != NULL) + { + pHook->pTarget = ct.pTarget; +#if defined(_M_X64) || defined(__x86_64__) + pHook->pDetour = ct.pRelay; +#else + pHook->pDetour = ct.pDetour; +#endif + pHook->pTrampoline = ct.pTrampoline; + pHook->patchAbove = ct.patchAbove; + pHook->isEnabled = FALSE; + pHook->queueEnable = FALSE; + pHook->nIP = ct.nIP; + memcpy(pHook->oldIPs, ct.oldIPs, ARRAYSIZE(ct.oldIPs)); + memcpy(pHook->newIPs, ct.newIPs, ARRAYSIZE(ct.newIPs)); + + // Back up the target function. + + if (ct.patchAbove) + { + memcpy( + pHook->backup, + (LPBYTE)pTarget - sizeof(JMP_REL), + sizeof(JMP_REL) + sizeof(JMP_REL_SHORT)); + } + else + { + memcpy(pHook->backup, pTarget, sizeof(JMP_REL)); + } + + if (ppOriginal != NULL) + *ppOriginal = pHook->pTrampoline; + } + else + { + status = MH_ERROR_MEMORY_ALLOC; + } + } + else + { + status = MH_ERROR_UNSUPPORTED_FUNCTION; + } + + if (status != MH_OK) + { + FreeBuffer(pBuffer); + } + } + else + { + status = MH_ERROR_MEMORY_ALLOC; + } + } + else + { + status = MH_ERROR_ALREADY_CREATED; + } + } + else + { + status = MH_ERROR_NOT_EXECUTABLE; + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_RemoveHook(LPVOID pTarget) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + UINT pos = FindHookEntry(pTarget); + if (pos != INVALID_HOOK_POS) + { + if (g_hooks.pItems[pos].isEnabled) + { + FROZEN_THREADS threads; + status = Freeze(&threads, pos, ACTION_DISABLE); + if (status == MH_OK) + { + status = EnableHookLL(pos, FALSE); + + Unfreeze(&threads); + } + } + + if (status == MH_OK) + { + FreeBuffer(g_hooks.pItems[pos].pTrampoline); + DeleteHookEntry(pos); + } + } + else + { + status = MH_ERROR_NOT_CREATED; + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +static MH_STATUS EnableHook(LPVOID pTarget, BOOL enable) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + if (pTarget == MH_ALL_HOOKS) + { + status = EnableAllHooksLL(enable); + } + else + { + UINT pos = FindHookEntry(pTarget); + if (pos != INVALID_HOOK_POS) + { + if (g_hooks.pItems[pos].isEnabled != enable) + { + FROZEN_THREADS threads; + status = Freeze(&threads, pos, ACTION_ENABLE); + if (status == MH_OK) + { + status = EnableHookLL(pos, enable); + + Unfreeze(&threads); + } + } + else + { + status = enable ? MH_ERROR_ENABLED : MH_ERROR_DISABLED; + } + } + else + { + status = MH_ERROR_NOT_CREATED; + } + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_EnableHook(LPVOID pTarget) +{ + return EnableHook(pTarget, TRUE); +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_DisableHook(LPVOID pTarget) +{ + return EnableHook(pTarget, FALSE); +} + +//------------------------------------------------------------------------- +static MH_STATUS QueueHook(LPVOID pTarget, BOOL queueEnable) +{ + MH_STATUS status = MH_OK; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + if (pTarget == MH_ALL_HOOKS) + { + UINT i; + for (i = 0; i < g_hooks.size; ++i) + g_hooks.pItems[i].queueEnable = queueEnable; + } + else + { + UINT pos = FindHookEntry(pTarget); + if (pos != INVALID_HOOK_POS) + { + g_hooks.pItems[pos].queueEnable = queueEnable; + } + else + { + status = MH_ERROR_NOT_CREATED; + } + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_QueueEnableHook(LPVOID pTarget) +{ + return QueueHook(pTarget, TRUE); +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_QueueDisableHook(LPVOID pTarget) +{ + return QueueHook(pTarget, FALSE); +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_ApplyQueued(VOID) +{ + MH_STATUS status = MH_OK; + UINT i, first = INVALID_HOOK_POS; + + EnterSpinLock(); + + if (g_hHeap != NULL) + { + for (i = 0; i < g_hooks.size; ++i) + { + if (g_hooks.pItems[i].isEnabled != g_hooks.pItems[i].queueEnable) + { + first = i; + break; + } + } + + if (first != INVALID_HOOK_POS) + { + FROZEN_THREADS threads; + status = Freeze(&threads, ALL_HOOKS_POS, ACTION_APPLY_QUEUED); + if (status == MH_OK) + { + for (i = first; i < g_hooks.size; ++i) + { + PHOOK_ENTRY pHook = &g_hooks.pItems[i]; + if (pHook->isEnabled != pHook->queueEnable) + { + status = EnableHookLL(i, pHook->queueEnable); + if (status != MH_OK) + break; + } + } + + Unfreeze(&threads); + } + } + } + else + { + status = MH_ERROR_NOT_INITIALIZED; + } + + LeaveSpinLock(); + + return status; +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_CreateHookApiEx( + LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, + LPVOID *ppOriginal, LPVOID *ppTarget) +{ + HMODULE hModule; + LPVOID pTarget; + + hModule = GetModuleHandleW(pszModule); + if (hModule == NULL) + return MH_ERROR_MODULE_NOT_FOUND; + + pTarget = (LPVOID)GetProcAddress(hModule, pszProcName); + if (pTarget == NULL) + return MH_ERROR_FUNCTION_NOT_FOUND; + + if (ppTarget != NULL) + *ppTarget = pTarget; + + return MH_CreateHook(pTarget, pDetour, ppOriginal); +} + +//------------------------------------------------------------------------- +MH_STATUS WINAPI MH_CreateHookApi( + LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, LPVOID *ppOriginal) +{ + return MH_CreateHookApiEx(pszModule, pszProcName, pDetour, ppOriginal, NULL); +} + +//------------------------------------------------------------------------- +const char *WINAPI MH_StatusToString(MH_STATUS status) +{ +#define MH_ST2STR(x) \ + case x: \ + return #x; + + switch (status) { + MH_ST2STR(MH_UNKNOWN) + MH_ST2STR(MH_OK) + MH_ST2STR(MH_ERROR_ALREADY_INITIALIZED) + MH_ST2STR(MH_ERROR_NOT_INITIALIZED) + MH_ST2STR(MH_ERROR_ALREADY_CREATED) + MH_ST2STR(MH_ERROR_NOT_CREATED) + MH_ST2STR(MH_ERROR_ENABLED) + MH_ST2STR(MH_ERROR_DISABLED) + MH_ST2STR(MH_ERROR_NOT_EXECUTABLE) + MH_ST2STR(MH_ERROR_UNSUPPORTED_FUNCTION) + MH_ST2STR(MH_ERROR_MEMORY_ALLOC) + MH_ST2STR(MH_ERROR_MEMORY_PROTECT) + MH_ST2STR(MH_ERROR_MODULE_NOT_FOUND) + MH_ST2STR(MH_ERROR_FUNCTION_NOT_FOUND) + } + +#undef MH_ST2STR + + return "(unknown)"; +} diff --git a/lib/MinHook/trampoline.c b/lib/MinHook/trampoline.c new file mode 100644 index 0000000..cf8ce05 --- /dev/null +++ b/lib/MinHook/trampoline.c @@ -0,0 +1,320 @@ +/* + * 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. + */ + +#include + +#if defined(_MSC_VER) && !defined(MINHOOK_DISABLE_INTRINSICS) + #define ALLOW_INTRINSICS + #include +#endif + +#ifndef ARRAYSIZE + #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) +#endif + +#if defined(_M_X64) || defined(__x86_64__) + #include "./hde/hde64.h" + typedef hde64s HDE; + #define HDE_DISASM(code, hs) hde64_disasm(code, hs) +#else + #include "./hde/hde32.h" + typedef hde32s HDE; + #define HDE_DISASM(code, hs) hde32_disasm(code, hs) +#endif + +#include "trampoline.h" +#include "buffer.h" + +// Maximum size of a trampoline function. +#if defined(_M_X64) || defined(__x86_64__) + #define TRAMPOLINE_MAX_SIZE (MEMORY_SLOT_SIZE - sizeof(JMP_ABS)) +#else + #define TRAMPOLINE_MAX_SIZE MEMORY_SLOT_SIZE +#endif + +//------------------------------------------------------------------------- +static BOOL IsCodePadding(LPBYTE pInst, UINT size) +{ + UINT i; + + if (pInst[0] != 0x00 && pInst[0] != 0x90 && pInst[0] != 0xCC) + return FALSE; + + for (i = 1; i < size; ++i) + { + if (pInst[i] != pInst[0]) + return FALSE; + } + return TRUE; +} + +//------------------------------------------------------------------------- +BOOL CreateTrampolineFunction(PTRAMPOLINE ct) +{ +#if defined(_M_X64) || defined(__x86_64__) + CALL_ABS call = { + 0xFF, 0x15, 0x00000002, // FF15 00000002: CALL [RIP+8] + 0xEB, 0x08, // EB 08: JMP +10 + 0x0000000000000000ULL // Absolute destination address + }; + JMP_ABS jmp = { + 0xFF, 0x25, 0x00000000, // FF25 00000000: JMP [RIP+6] + 0x0000000000000000ULL // Absolute destination address + }; + JCC_ABS jcc = { + 0x70, 0x0E, // 7* 0E: J** +16 + 0xFF, 0x25, 0x00000000, // FF25 00000000: JMP [RIP+6] + 0x0000000000000000ULL // Absolute destination address + }; +#else + CALL_REL call = { + 0xE8, // E8 xxxxxxxx: CALL +5+xxxxxxxx + 0x00000000 // Relative destination address + }; + JMP_REL jmp = { + 0xE9, // E9 xxxxxxxx: JMP +5+xxxxxxxx + 0x00000000 // Relative destination address + }; + JCC_REL jcc = { + 0x0F, 0x80, // 0F8* xxxxxxxx: J** +6+xxxxxxxx + 0x00000000 // Relative destination address + }; +#endif + + UINT8 oldPos = 0; + UINT8 newPos = 0; + ULONG_PTR jmpDest = 0; // Destination address of an internal jump. + BOOL finished = FALSE; // Is the function completed? +#if defined(_M_X64) || defined(__x86_64__) + UINT8 instBuf[16]; +#endif + + ct->patchAbove = FALSE; + ct->nIP = 0; + + do + { + HDE hs; + UINT copySize; + LPVOID pCopySrc; + ULONG_PTR pOldInst = (ULONG_PTR)ct->pTarget + oldPos; + ULONG_PTR pNewInst = (ULONG_PTR)ct->pTrampoline + newPos; + + copySize = HDE_DISASM((LPVOID)pOldInst, &hs); + if (hs.flags & F_ERROR) + return FALSE; + + pCopySrc = (LPVOID)pOldInst; + if (oldPos >= sizeof(JMP_REL)) + { + // The trampoline function is long enough. + // Complete the function with the jump to the target function. +#if defined(_M_X64) || defined(__x86_64__) + jmp.address = pOldInst; +#else + jmp.operand = (INT32)(pOldInst - (pNewInst + sizeof(jmp))); +#endif + pCopySrc = &jmp; + copySize = sizeof(jmp); + + finished = TRUE; + } +#if defined(_M_X64) || defined(__x86_64__) + else if ((hs.modrm & 0xC7) == 0x05) + { + // Instructions using RIP relative addressing. (ModR/M = 00???101B) + + // Modify the RIP relative address. + PUINT32 pRelAddr; + + // Avoid using memcpy to reduce the footprint. +#ifndef ALLOW_INTRINSICS + memcpy(instBuf, (LPBYTE)pOldInst, copySize); +#else + __movsb(instBuf, (LPBYTE)pOldInst, copySize); +#endif + pCopySrc = instBuf; + + // Relative address is stored at (instruction length - immediate value length - 4). + pRelAddr = (PUINT32)(instBuf + hs.len - ((hs.flags & 0x3C) >> 2) - 4); + *pRelAddr + = (UINT32)((pOldInst + hs.len + (INT32)hs.disp.disp32) - (pNewInst + hs.len)); + + // Complete the function if JMP (FF /4). + if (hs.opcode == 0xFF && hs.modrm_reg == 4) + finished = TRUE; + } +#endif + else if (hs.opcode == 0xE8) + { + // Direct relative CALL + ULONG_PTR dest = pOldInst + hs.len + (INT32)hs.imm.imm32; +#if defined(_M_X64) || defined(__x86_64__) + call.address = dest; +#else + call.operand = (INT32)(dest - (pNewInst + sizeof(call))); +#endif + pCopySrc = &call; + copySize = sizeof(call); + } + else if ((hs.opcode & 0xFD) == 0xE9) + { + // Direct relative JMP (EB or E9) + ULONG_PTR dest = pOldInst + hs.len; + + if (hs.opcode == 0xEB) // isShort jmp + dest += (INT8)hs.imm.imm8; + else + dest += (INT32)hs.imm.imm32; + + // Simply copy an internal jump. + if ((ULONG_PTR)ct->pTarget <= dest + && dest < ((ULONG_PTR)ct->pTarget + sizeof(JMP_REL))) + { + if (jmpDest < dest) + jmpDest = dest; + } + else + { +#if defined(_M_X64) || defined(__x86_64__) + jmp.address = dest; +#else + jmp.operand = (INT32)(dest - (pNewInst + sizeof(jmp))); +#endif + pCopySrc = &jmp; + copySize = sizeof(jmp); + + // Exit the function if it is not in the branch. + finished = (pOldInst >= jmpDest); + } + } + else if ((hs.opcode & 0xF0) == 0x70 + || (hs.opcode & 0xFC) == 0xE0 + || (hs.opcode2 & 0xF0) == 0x80) + { + // Direct relative Jcc + ULONG_PTR dest = pOldInst + hs.len; + + if ((hs.opcode & 0xF0) == 0x70 // Jcc + || (hs.opcode & 0xFC) == 0xE0) // LOOPNZ/LOOPZ/LOOP/JECXZ + dest += (INT8)hs.imm.imm8; + else + dest += (INT32)hs.imm.imm32; + + // Simply copy an internal jump. + if ((ULONG_PTR)ct->pTarget <= dest + && dest < ((ULONG_PTR)ct->pTarget + sizeof(JMP_REL))) + { + if (jmpDest < dest) + jmpDest = dest; + } + else if ((hs.opcode & 0xFC) == 0xE0) + { + // LOOPNZ/LOOPZ/LOOP/JCXZ/JECXZ to the outside are not supported. + return FALSE; + } + else + { + UINT8 cond = ((hs.opcode != 0x0F ? hs.opcode : hs.opcode2) & 0x0F); +#if defined(_M_X64) || defined(__x86_64__) + // Invert the condition in x64 mode to simplify the conditional jump logic. + jcc.opcode = 0x71 ^ cond; + jcc.address = dest; +#else + jcc.opcode1 = 0x80 | cond; + jcc.operand = (INT32)(dest - (pNewInst + sizeof(jcc))); +#endif + pCopySrc = &jcc; + copySize = sizeof(jcc); + } + } + else if ((hs.opcode & 0xFE) == 0xC2) + { + // RET (C2 or C3) + + // Complete the function if not in a branch. + finished = (pOldInst >= jmpDest); + } + + // Can't alter the instruction length in a branch. + if (pOldInst < jmpDest && copySize != hs.len) + return FALSE; + + // Trampoline function is too large. + if ((newPos + copySize) > TRAMPOLINE_MAX_SIZE) + return FALSE; + + // Trampoline function has too many instructions. + if (ct->nIP >= ARRAYSIZE(ct->oldIPs)) + return FALSE; + + ct->oldIPs[ct->nIP] = oldPos; + ct->newIPs[ct->nIP] = newPos; + ct->nIP++; + + // Avoid using memcpy to reduce the footprint. +#ifndef ALLOW_INTRINSICS + memcpy((LPBYTE)ct->pTrampoline + newPos, pCopySrc, copySize); +#else + __movsb((LPBYTE)ct->pTrampoline + newPos, (LPBYTE)pCopySrc, copySize); +#endif + newPos += copySize; + oldPos += hs.len; + } while (!finished); + + // Is there enough place for a long jump? + if (oldPos < sizeof(JMP_REL) + && !IsCodePadding((LPBYTE)ct->pTarget + oldPos, sizeof(JMP_REL) - oldPos)) + { + // Is there enough place for a short jump? + if (oldPos < sizeof(JMP_REL_SHORT) + && !IsCodePadding((LPBYTE)ct->pTarget + oldPos, sizeof(JMP_REL_SHORT) - oldPos)) + { + return FALSE; + } + + // Can we place the long jump above the function? + if (!IsExecutableAddress((LPBYTE)ct->pTarget - sizeof(JMP_REL))) + return FALSE; + + if (!IsCodePadding((LPBYTE)ct->pTarget - sizeof(JMP_REL), sizeof(JMP_REL))) + return FALSE; + + ct->patchAbove = TRUE; + } + +#if defined(_M_X64) || defined(__x86_64__) + // Create a relay function. + jmp.address = (ULONG_PTR)ct->pDetour; + + ct->pRelay = (LPBYTE)ct->pTrampoline + newPos; + memcpy(ct->pRelay, &jmp, sizeof(jmp)); +#endif + + return TRUE; +} diff --git a/lib/MinHook/trampoline.h b/lib/MinHook/trampoline.h new file mode 100644 index 0000000..f7efb36 --- /dev/null +++ b/lib/MinHook/trampoline.h @@ -0,0 +1,105 @@ +/* + * 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 + +#pragma pack(push, 1) + +// Structs for writing x86/x64 instructions. + +// 8-bit relative jump. +typedef struct _JMP_REL_SHORT +{ + UINT8 opcode; // EB xx: JMP +2+xx + INT8 operand; // Relative destination address +} JMP_REL_SHORT, *PJMP_REL_SHORT; + +// 32-bit direct relative jump/call. +typedef struct _JMP_REL +{ + UINT8 opcode; // E9/E8 xxxxxxxx: JMP/CALL +5+xxxxxxxx + INT32 operand; // Relative destination address +} JMP_REL, *PJMP_REL, CALL_REL; + +// 64-bit indirect absolute jump. +typedef struct _JMP_ABS +{ + UINT8 opcode0; // FF25 00000000: JMP [+6] + UINT8 opcode1; + UINT32 dummy; + UINT64 address; // Absolute destination address +} JMP_ABS, *PJMP_ABS; + +// 64-bit indirect absolute call. +typedef struct _CALL_ABS +{ + UINT8 opcode0; // FF15 00000002: CALL [+6] + UINT8 opcode1; + UINT32 dummy0; + UINT8 dummy1; // EB 08: JMP +10 + UINT8 dummy2; + UINT64 address; // Absolute destination address +} CALL_ABS; + +// 32-bit direct relative conditional jumps. +typedef struct _JCC_REL +{ + UINT8 opcode0; // 0F8* xxxxxxxx: J** +6+xxxxxxxx + UINT8 opcode1; + INT32 operand; // Relative destination address +} JCC_REL; + +// 64bit indirect absolute conditional jumps that x64 lacks. +typedef struct _JCC_ABS +{ + UINT8 opcode; // 7* 0E: J** +16 + UINT8 dummy0; + UINT8 dummy1; // FF25 00000000: JMP [+6] + UINT8 dummy2; + UINT32 dummy3; + UINT64 address; // Absolute destination address +} JCC_ABS; + +#pragma pack(pop) + +typedef struct _TRAMPOLINE +{ + LPVOID pTarget; // [In] Address of the target function. + LPVOID pDetour; // [In] Address of the detour function. + LPVOID pTrampoline; // [In] Buffer address for the trampoline and relay function. + +#if defined(_M_X64) || defined(__x86_64__) + LPVOID pRelay; // [Out] Address of the relay function. +#endif + BOOL patchAbove; // [Out] Should use the hot patch area? + UINT nIP; // [Out] Number of the instruction boundaries. + UINT8 oldIPs[8]; // [Out] Instruction boundaries of the target function. + UINT8 newIPs[8]; // [Out] Instruction boundaries of the trampoline function. +} TRAMPOLINE, *PTRAMPOLINE; + +BOOL CreateTrampolineFunction(PTRAMPOLINE ct); diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..d51167f --- /dev/null +++ b/src/main.c @@ -0,0 +1,85 @@ +#include + +#define WIN32_LEAN_AND_MEAN +#include + +// Original RegOpenKeyExW function pointer +typedef LSTATUS (WINAPI *RegOpenKeyExW_t) (HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); + +RegOpenKeyExW_t OriginalRegOpenKeyExW = NULL; + +// Original RegCreateKeyExW function pointer +typedef LSTATUS (WINAPI *RegCreateKeyExW_t) (HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, + DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, + LPDWORD lpdwDisposition); + +RegCreateKeyExW_t OriginalRegCreateKeyExW = NULL; + +// Custom RegOpenKeyExW: Intercept registry calls and rewrite relevant subkeys +LSTATUS WINAPI CustomRegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult) +{ + if (lstrcmpW(lpSubKey, L"Software\\Blizzard Entertainment\\World of Warcraft\\Client") == 0) { + LPCWSTR lpNewKey = L"Software\\Blizzard Entertainment\\World of Warcraft Vanilla\\Client"; + return OriginalRegOpenKeyExW(hKey, lpNewKey, ulOptions, samDesired, phkResult); + } + + return OriginalRegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult); +} + +// Custom RegCreateKeyExW: Intercept registry calls and rewrite relevant subkeys +LSTATUS WINAPI CustomRegCreateKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, + REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition) +{ + if (lstrcmpW(lpSubKey, L"Software\\Blizzard Entertainment\\World of Warcraft") == 0) { + LPCWSTR lpNewKey = L"Software\\Blizzard Entertainment\\World of Warcraft Vanilla"; + return OriginalRegCreateKeyExW(hKey, lpNewKey, Reserved, lpClass, dwOptions, + samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); + } + + if (lstrcmpW(lpSubKey, L"Software\\Blizzard Entertainment\\World of Warcraft\\Client") == 0) { + LPCWSTR lpNewKey = L"Software\\Blizzard Entertainment\\World of Warcraft Vanilla\\Client"; + return OriginalRegCreateKeyExW(hKey, lpNewKey, Reserved, lpClass, dwOptions, + samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); + } + + return OriginalRegCreateKeyExW(hKey, lpSubKey, Reserved, lpClass, dwOptions, + samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); +} + +// DLL entry point +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + switch (fdwReason) { + + // Attach handler + case DLL_PROCESS_ATTACH: + if (MH_Initialize() != MH_OK) { + return FALSE; + } + + if (MH_CreateHookApi(L"advapi32", "RegOpenKeyExW", &CustomRegOpenKeyExW, (LPVOID*) &OriginalRegOpenKeyExW) != MH_OK) { + return FALSE; + } + + if (MH_CreateHookApi(L"advapi32", "RegCreateKeyExW", &CustomRegCreateKeyExW, (LPVOID*) &OriginalRegCreateKeyExW) != MH_OK) { + return FALSE; + } + + if (MH_EnableHook(MH_ALL_HOOKS) != MH_OK) { + return FALSE; + } + + break; + + // Detach handler + case DLL_PROCESS_DETACH: + // If the DLL's entry-point function returns FALSE following a DLL_PROCESS_ATTACH + // notification, it receives a DLL_PROCESS_DETACH notification and the DLL is + // unloaded immediately. So all clean up code can be added here. + MH_DisableHook(MH_ALL_HOOKS); + MH_Uninitialize(); + break; + } + + return TRUE; +} \ No newline at end of file diff --git a/tools/make.exe b/tools/make.exe new file mode 100644 index 0000000000000000000000000000000000000000..58d49e3cc0f71a55d8fc86f0bc184ba6ff2268b9 GIT binary patch literal 175104 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 literal 0 HcmV?d00001 diff --git a/tools/msbuild.bat b/tools/msbuild.bat new file mode 100644 index 0000000..6287a21 --- /dev/null +++ b/tools/msbuild.bat @@ -0,0 +1,15 @@ +@echo off +setlocal enabledelayedexpansion + +rem locate msbuild installation path +for /f "usebackq tokens=*" %%i in (`%~dp0\vswhere.exe -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do ( + set "msbuild=%%i" +) + +if not exist "%msbuild%" ( + echo Error: Cannot locate MSBuild.exe + exit /b 1 +) + +rem run msbuild +"%msbuild%" %* \ No newline at end of file diff --git a/tools/regfix.sln b/tools/regfix.sln new file mode 100644 index 0000000..8c59a40 --- /dev/null +++ b/tools/regfix.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regfix", "regfix.vcxproj", "{FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Debug|x64.ActiveCfg = Debug|x64 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Debug|x64.Build.0 = Debug|x64 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Debug|x86.ActiveCfg = Debug|Win32 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Debug|x86.Build.0 = Debug|Win32 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Release|x64.ActiveCfg = Release|x64 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Release|x64.Build.0 = Release|x64 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Release|x86.ActiveCfg = Release|Win32 + {FC06D5FE-5290-40DF-8D5F-F5CD323A15C3}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tools/regfix.vcxproj b/tools/regfix.vcxproj new file mode 100644 index 0000000..3e64f13 --- /dev/null +++ b/tools/regfix.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + 17.0 + Win32Proj + {fc06d5fe-5290-40df-8d5f-f5cd323a15c3} + regfix + 10.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + .\build\$(TargetName)\$(Platform)\$(Configuration)\ + $(SolutionDir)..\bin\ + + + .\build\$(TargetName)\$(Platform)\$(Configuration)\ + $(SolutionDir)..\bin\ + + + $(SolutionDir)..\bin\ + .\build\$(TargetName)\$(Platform)\$(Configuration)\ + + + $(SolutionDir)..\bin\ + .\build\$(TargetName)\$(Platform)\$(Configuration)\ + + + + Level3 + true + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;REGFIX_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + + + true + + $(SolutionDir)..\include\ + + + Windows + true + false + $(SolutionDir)..\lib\ + $(CoreLibraryDependencies);%(AdditionalDependencies); + + + + + Level3 + true + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;REGFIX_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + + + + $(SolutionDir)..\include\ + + + Windows + true + true + true + false + $(SolutionDir)..\lib\ + $(CoreLibraryDependencies);%(AdditionalDependencies); + + + + + Level3 + true + _CRT_SECURE_NO_WARNINGS;_DEBUG;REGFIX_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + + + true + + $(SolutionDir)..\include\ + + + Windows + true + false + $(SolutionDir)..\lib\ + $(CoreLibraryDependencies);%(AdditionalDependencies); + + + + + Level3 + true + true + true + _CRT_SECURE_NO_WARNINGS;NDEBUG;REGFIX_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + + + + $(SolutionDir)..\include\ + + + Windows + true + true + true + false + $(SolutionDir)..\lib\ + $(CoreLibraryDependencies);%(AdditionalDependencies); + + + + + + \ No newline at end of file diff --git a/tools/regfix.vcxproj.filters b/tools/regfix.vcxproj.filters new file mode 100644 index 0000000..0fc60be --- /dev/null +++ b/tools/regfix.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + MinHook + + + + + {0f586efe-ad79-4b2a-94c4-e069d04aab89} + + + \ No newline at end of file diff --git a/tools/regfix.vcxproj.user b/tools/regfix.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/tools/regfix.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/tools/vswhere.exe b/tools/vswhere.exe new file mode 100644 index 0000000000000000000000000000000000000000..26038267b58ab32f0777940318b78ba050dd2db3 GIT binary patch literal 469456 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