MinHook
The Minimalistic x86/x64 API Hooking Library for Windows
http://www.codeproject.com/KB/winsdk/LibMinHook.aspx
Donation please
I need some funds to continue developing this library. All contributions gratefully accepted.
Version history
-
####v1.3.2.1 - 9 Nov 2015 (Nuget package only)
- Fixed an insufficient support for Visual Studio 2015.
-
####v1.3.2 - 1 Nov 2015
- Support Visual Studio 2015.
- Support MinGW.
-
####v1.3.2-beta3 - 21 Jul 2015 (Nuget package only)
- Support MinGW. (Experimental)
-
####v1.3.2-beta2 - 18 May 2015
- Fixed some subtle bugs. (Thanks to RaMMicHaeL)
- Added a helper function
MH_StatusToString
. (Thanks to Jan Klass)
-
####v1.3.2-beta - 12 May 2015
- Fixed a possible thread deadlock in x64 mode. (Thanks to Aleh Kazakevich)
- Reduced the footprint a little more.
- Support Visual Studio 2015 RC. (Experimental)
-
####v1.3.1.1 - 7 Apr 2015 (Nuget package only)
- Support for WDK8.0 and 8.1.
-
####v1.3.1 - 19 Mar 2015
- No major changes from v1.3.1-beta.
-
####v1.3.1-beta - 11 Mar 2015
- Added a helper function
MH_CreateHookApi
. (Thanks to uniskz). - Fixed a false memory leak reported by some tools.
- Fixed a degradated compatibility issue.
- Added a helper function
-
####v1.3 - 13 Sep 2014
- No major changes from v1.3-beta3.
-
####v1.3-beta3 - 31 Jul 2014
- Fixed some small bugs.
- Improved the memory management.
-
####v1.3-beta2 - 21 Jul 2014
- Changed the parameters to Windows-friendly types. (void* to LPVOID)
- Fixed some small bugs.
- Reorganized the source files.
- Reduced the footprint a little more.
-
####v1.3-beta - 17 Jul 2014
- Rewrote in plain C to reduce the footprint and memory usage. (suggested by Andrey Unis)
- Simplified the overall code base to make it more readable and maintainable.
- Changed the license from 3-clause to 2-clause BSD License.
-
####v1.2 - 28 Sep 2013
- Removed boost dependency (jarredholman).
- Fixed a small bug in the GetRelativeBranchDestination function (pillbug99).
- Added the
MH_RemoveHook
function, which removes a hook created with theMH_CreateHook
function. - Added the following functions to enable or disable multiple hooks in one go:
MH_QueueEnableHook
,MH_QueueDisableHook
,MH_ApplyQueued
. This is the preferred way of handling multiple hooks as every call toMH_EnableHook
orMH_DisableHook
suspends and resumes all threads. - Made the functions
MH_EnableHook
andMH_DisableHook
enable/disable all created hooks when theMH_ALL_HOOKS
parameter is passed. This, too, is an efficient way of handling multiple hooks. - If the target function is too small to be patched with a jump, MinHook tries to place the jump above the function. If that fails as well, the
MH_CreateHook
function returnsMH_ERROR_UNSUPPORTED_FUNCTION
. This fixes an issue of hooking the LoadLibraryExW function on Windows 7 x64 (reported by Obble).
-
####v1.1 - 26 Nov 2009
- Changed the interface to create a hook and a trampoline function in one go to prevent the detour function from being called before the trampoline function is created. (reported by xliqz)
- Shortened the function names from
MinHook_*
toMH_*
to make them handier.
-
####v1.0 - 22 Nov 2009
- Initial release.