0x41337 / voyage

A lightweight library for create unix hooks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The voyage

CMake on a single platform CodeQL

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.

Dependencies

  • googletest Framework for writing tests.

How to build

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.

Integration

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)

The tests

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

Development status

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)

Documentation/Wiki

All library documentation is available in here

Examples

The examples are in the examples folder

License and Terms

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.

About

A lightweight library for create unix hooks.

License:GNU General Public License v3.0


Languages

Language:C++ 80.0%Language:C 17.0%Language:CMake 3.0%