Deviare In-Process is a code interception engine for Microsoft Windows®. It is a dual license library, GPLv3 and Commercial. The source code is available at GitHub.
This library is at the core of our Deviare 2.0 technology, it is the best alternative to Microsoft Detours® but at a more convenient price.
The library is coded in C++ and provides all the facilities required to instrumenting binary libraries during runtime. It includes support for both 32 bit and 64 bit applications and it implements the interception verifying different situations that can crash the process. If you need to intercept any Win32 functions or any other code, this library makes it easier than ever. More Info »
Unlike the rest of the libraries, Deviare In-Process provides a safe mecanism to implement multi-threaded application API hooking. When an application is running, more than one thread can be executing the code being intercepted. Deviare In-Process is the only hooking library that provides safe hooking even in this scenario. Also, it provides an equivalent to DetourCreateProcessWithDll function which starts an intercepted process.
This is a fragment of assembler code which shows a code interception in a Win32 API function.
The image shows that every call to the FindNextFile function is handled by the Deviare In-Process library, and allows you to execute your custom code.
You can bind them to events in your application.
The Deviare In-Process instrumentation engine package includes sample code in C++ for a quick start.