{"id":13480686,"url":"https://github.com/TsudaKageyu/minhook","last_synced_at":"2025-03-27T11:30:46.148Z","repository":{"id":8401155,"uuid":"9982112","full_name":"TsudaKageyu/minhook","owner":"TsudaKageyu","description":"The Minimalistic x86/x64 API Hooking Library for Windows","archived":false,"fork":false,"pushed_at":"2025-03-24T09:59:41.000Z","size":348,"stargazers_count":4640,"open_issues_count":37,"forks_count":922,"subscribers_count":138,"default_branch":"master","last_synced_at":"2025-03-27T01:06:45.321Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.codeproject.com/KB/winsdk/LibMinHook.aspx","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TsudaKageyu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-05-10T13:36:41.000Z","updated_at":"2025-03-26T14:04:39.000Z","dependencies_parsed_at":"2022-07-13T03:10:44.804Z","dependency_job_id":"9c0148b7-bc30-4e33-b5fb-1f6d383e2709","html_url":"https://github.com/TsudaKageyu/minhook","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TsudaKageyu%2Fminhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TsudaKageyu%2Fminhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TsudaKageyu%2Fminhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TsudaKageyu%2Fminhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TsudaKageyu","download_url":"https://codeload.github.com/TsudaKageyu/minhook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245835901,"owners_count":20680289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T17:00:43.636Z","updated_at":"2025-03-27T11:30:46.126Z","avatar_url":"https://github.com/TsudaKageyu.png","language":"C","funding_links":[],"categories":["C","Operating Systems"],"sub_categories":["Windows"],"readme":"# MinHook\n\n[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)\n\nThe Minimalistic x86/x64 API Hooking Library for Windows\n\nhttp://www.codeproject.com/KB/winsdk/LibMinHook.aspx\n\n### Version history\n\n- **v1.3.3 - 8 Jan 2017**\n  * Added a helper function ```MH_CreateHookApiEx```. (Thanks to asm256)\n  * Support Visual Studio 2017 RC.\n\n- **v1.3.2.1 - 9 Nov 2015**  (Nuget package only)\n  * Fixed an insufficient support for Visual Studio 2015.\n\n- **v1.3.2 - 1 Nov 2015**\n  * Support Visual Studio 2015.\n  * Support MinGW.\n\n- **v1.3.2-beta3 - 21 Jul 2015**  (Nuget package only)\n  * Support MinGW. (Experimental)\n\n- **v1.3.2-beta2 - 18 May 2015**\n  * Fixed some subtle bugs. (Thanks to RaMMicHaeL)\n  * Added a helper function ```MH_StatusToString```. (Thanks to Jan Klass)\n\n- **v1.3.2-beta - 12 May 2015**\n  * Fixed a possible thread deadlock in x64 mode. (Thanks to Aleh Kazakevich)\n  * Reduced the footprint a little more.\n  * Support Visual Studio 2015 RC. (Experimental)\n\n- **v1.3.1.1 - 7 Apr 2015**  (Nuget package only)\n  * Support for WDK8.0 and 8.1.\n\n- **v1.3.1 - 19 Mar 2015**\n  * No major changes from v1.3.1-beta.\n\n- **v1.3.1-beta - 11 Mar 2015**\n  * Added a helper function ```MH_CreateHookApi```. (Thanks to uniskz).\n  * Fixed a false memory leak reported by some tools.\n  * Fixed a degradated compatibility issue.\n\n- **v1.3 - 13 Sep 2014**\n  * No major changes from v1.3-beta3.\n\n- **v1.3-beta3 - 31 Jul 2014**\n  * Fixed some small bugs.\n  * Improved the memory management.\n\n- **v1.3-beta2 - 21 Jul 2014**\n  * Changed the parameters to Windows-friendly types. (void* to LPVOID)\n  * Fixed some small bugs.\n  * Reorganized the source files.\n  * Reduced the footprint a little more.\n\n- **v1.3-beta - 17 Jul 2014**\n  * Rewrote in plain C to reduce the footprint and memory usage. (suggested by Andrey Unis)\n  * Simplified the overall code base to make it more readable and maintainable.\n  * Changed the license from 3-clause to 2-clause BSD License.\n\n- **v1.2 - 28 Sep 2013**\n  * Removed boost dependency ([jarredholman](https://github.com/jarredholman/minhook)).\n  * Fixed a small bug in the GetRelativeBranchDestination function ([pillbug99](http://www.codeproject.com/Messages/4058892/Small-Bug-Found.aspx)).\n  * Added the ```MH_RemoveHook``` function, which removes a hook created with the ```MH_CreateHook``` function.\n  * 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 to `MH_EnableHook` or `MH_DisableHook` suspends and resumes all threads.\n  * Made the functions ```MH_EnableHook``` and ```MH_DisableHook``` enable/disable all created hooks when the ```MH_ALL_HOOKS``` parameter is passed. This, too, is an efficient way of handling multiple hooks.\n  * 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 returns ```MH_ERROR_UNSUPPORTED_FUNCTION```. This fixes an issue of hooking the LoadLibraryExW function on Windows 7 x64 ([reported by Obble](http://www.codeproject.com/Messages/4578613/Re-Bug-LoadLibraryExW-hook-fails-on-windows-2008-r.aspx)).\n\n- **v1.1 - 26 Nov 2009**\n  * 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](http://www.codeproject.com/Messages/3280374/Unsafe.aspx))\n  * Shortened the function names from ```MinHook_*``` to ```MH_*``` to make them handier.\n\n- **v1.0 - 22 Nov 2009**\n  * Initial release.\n\n### Building MinHook - Using vcpkg\n\nYou can download and install MinHook using the [vcpkg](https://github.com/Microsoft/vcpkg) dependency manager:\n\n    git clone https://github.com/microsoft/vcpkg\n    .\\vcpkg\\bootstrap-vcpkg.bat\n    .\\vcpkg\\vcpkg integrate install\n    .\\vcpkg\\vcpkg install minhook\n\nThe MinHook port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTsudaKageyu%2Fminhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTsudaKageyu%2Fminhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTsudaKageyu%2Fminhook/lists"}