newfunction; //Restore the old memory protection flags. VirtualProtect(funcptr, sizeof(LPVOID), oldrights, &newrights); } See also Callback (computer science) Delegation (programming) Terminate-and-stay-resident program User exit WinAPIOverride32 References [2012-06-29: Link appears to be dead] External links Windows Information on Import Address Table function hooking. Information from Microsoft on hooking Information and various techniques regarding x86 hooking. APISpy32 is an application used to hook win32 API. Detours is a general purpose function hooking library created by Microsoft Research which works in C / C++. winspy Three ways to inject code into another process. HookTool SDK (ACF SDK) Provides a comprehensive overview on API hooking and code injection. A commercial product available too. madCodeHook is a commercial x86 and x64 API hooking and DLL injection library for C++ and Delphi. EasyHook is an open source hooking engine supporting x86 and x64 in Windows in both user and kernel land. SpyStudio Application Trace SpyStudio is an Application tracer which hook calls, displaying the results in a structured way. rohitab.com API Monitor is a freeware application that can hook and display 10,000+ Windows APIs and COM Interfaces in 32-bit and 64-bit applications and services. Deviare API Hook Deviare is a freeware inter-process hook framework that can be used to intercept other processes' API calls and show full-parameter information or create API monitors. WinAPIOverride WinAPIOverride is a freeware for non commercial use. It can hook win32 API, COM, OLE, ActiveX, .NET in 32-bit and 64-bit processes. It includes monitoring post analysis tools. urmem C++11 cross-platform library (x86) for working with memory (hooks, patches, pointer's wrapper, signature scanner etc.) Linux A student research project that utilizes hooking. Functionality that allows a piece of software to observe and control the execution of another process. Use of LD_PRELOAD to hook shared library calls. Emacs Emacs Hooks Hooks are an important mechanism for customization of Emacs. A hook is a Lisp variable which holds a list of functions, to be called on some well-defined occasion. (This is called running the hook.) OS X and iOS Cydia Substrate is a framework for jailbroken iOS devices allowing developers to hook into any other framework or application. harpoon is an OS X library for runtime function hooking. In Depth API Hooking x86 API Hooking Demystified Article on various API Hooking methods, for the x86 architecture. Control flow DLL injection Articles with example code