improved base and added PP defines KERNEL_UPSTREAM TESTING DEBUG
TaxiDriver
Linux Kernel Module for RPM/WPM and usermode driver with examples.
Features
- Get the base address of any process/loaded .so file
- RPM
- WPM
Compiling
Prerequises :
sudo pacman -S git linux-headers OpenGL cmake
yay -S sdl3-git
Upstream Linux Kernel
To compile the driver you'll need to be at least on kernel version v6.5 (i used the arch kernel).
legacy Linux 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)
Compiling and running :
git clone --recursive https://github.com/ALittlePatate/TaxiDriver
Kernel Module
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
Usermode Target/Test Application
cd um/test && make
./test_app
Usermode Driver Application
cd um && make
./main
Known Issues
- 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.
Missing Features in development
- 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
Contact
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.