Voyage is a library for creating/managing hooks for unix systems.
Voyage is inspired by the Dobby, Minhook and Libmem libraries, which are great libraries. (You should look)
If you know how to use some of the libraries mentioned, you will certainly feel comfortable using Voyage.
googletest
Framework for writing tests.
Make sure you have all dependencies that contain * in their name. You can build the library using cmake:
$ cmake -S . -B build
And
$ cmake --build build
If everything goes well you should have the shared library.
Voyage is a C++ project so if you are creating a project with C/C++ together with CMake you can build Voyage alongside your project:
- Add Voyage as a vendorized dependency using git modules:
$ git submodule add repository/voyage.git vendor/voyage
Note: You should change
repository
to the original repository. I just used this name to shorten the command and make it easier to read.
- Then add it to your CMake file:
add_subdirectory(vendor/voyage)
- And lastly you can link your binary/library with Voyage:
target_link_libraries(your_project voyage)
Tests are written using the googletest
testing framework and are located in the tests
folder.
After compiling the project, you can use the command below to run the tests:
$ ctest --test-dir build/tests
Voyage is still in the Beta phase in version 0.4. Below is a list of what has been implemented and what has not yet been implemented:
Voyage core
- Trampoline
- Memory protection
- Support for multiple architectures (Current focus)
Voyage api
-
VE_FindSymbolAddress
-
VE_CreateHook
-
VE_RemoveHook
-
VE_EnableHook
-
VE_DisableHook
Voyage repository
- Wiki
- Examples (Current focus)
All library documentation is available in here
The examples are in the examples
folder
The Voyage code is under the GPL-3.0
license. Third-party libraries used in the construction of the project may be under other licenses and terms, check the copy of the license and see the license and terms of the libraries used before using.