Linux Kernel Module for RPM/WPM and usermode driver with examples.
- Get the base address of any process/loaded .so file
- RPM
- WPM
sudo pacman -S git linux-headers OpenGL cmake
yay -S sdl3-git
To compile the driver you'll need to be at least on kernel version v6.5 (i used the arch kernel).
To build for an older Linux Kernel ex. 5.15 change KERNEL_UPSTREAM preprocessor definition
in TaxiDriver.h:
#define KERNEL_UPSTREAM 0
or if you use cmake only change required in CmakeLists.txt:
add_compile_definitions(TaxiDriver PRIVATE KERNEL_UPSTREAM=0)
git clone --recursive https://github.com/ALittlePatate/TaxiDriver
choose and write a MAJOR number ex. 506 in install.sh and validate for uniqueness grep "506" /proc/devices
# sudo mknod /dev/TaxiDriver c <choose Major Number> 0
# cmake is still incomplete
cd km && ./install.sh
system might still choose to set a different one, so read the number that is in use, after TaxiDriver is loaded,
with grep "TaxiDriver" /proc/devices
and adjust in mknod and reload TaxiDriver.
After loading the Driver, you should find a line saying that TaxiDriver was loaded with X major code.
sudo dmesg | grep TaxiDriver
Unload the driver :
# sudo make unload
sudo rmmod TaxiDriver
sudo rm /dev/TaxiDriver
cd um/test && make
./test_app
cd um && make
./main
- Fails to open device:
MAJOR number has to match in mknod to open device! Check with
grep "TaxiDriver" /proc/devices
If you find anything not listed above. Please open up Issues on the Repo
and provide the build log showing the issue with LANG=C make
with all of your steps and envoirment info to reproduce.
- ImGui Overlay
- expand km mem functions
- expand um driver example and test_app
- Findpattern
- write/inject shellcode with asm mid function hook
- X11 Input Event Handling
If you have a problem regarding the code, open an issue or make a pull request, i'll be happy to add your contribution !
If you need to contact me for any other reasons, message me at _.patate
on discord.