improved base and added PP defines KERNEL_UPSTREAM TESTING DEBUG

This commit is contained in:
adeliktas
2023-10-28 03:55:19 +02:00
parent a6a285b82c
commit fb5d501d88
26 changed files with 813 additions and 476 deletions

View File

@@ -1,53 +1,78 @@
# TaxiDriver
W/RPM Driver and usermode for Linux.<br>
Some things in the client are still not finished :
* X11 overlay
Linux Kernel Module for RPM/WPM and usermode driver with examples.
# Features
## Features
* Get the base address of any process/loaded .so file
* RPM
* WPM
# Compiling
To compile the driver you'll need to be at least on kernel version v6.5.8 (i used the [arch kernel](https://github.com/archlinux/linux/releases/tag/v6.5.8-arch1)).<br>
## Prerequises :
You'll need git, linux-headers, SDL3 and OpenGL :
## Compiling
### Prerequises :
```
sudo pacman -S git linux-headers OpenGL
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](https://github.com/archlinux/linux/releases/tag/v6.5.8-arch1)).<br>
### 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 :
Clone the repo, prepare imgui (still in active dev) :
### Compiling and running :
```
git clone https://github.com/ALittlePatate/TaxiDriver --recursive
chmod +x prepare_imgui.sh
./prepare_imgui.sh
git clone --recursive https://github.com/ALittlePatate/TaxiDriver
```
Compile :
#### Kernel Module
choose and write a MAJOR number ex. 506 in install.sh and validate for uniqueness `grep "506" /proc/devices`
```
make
# sudo mknod /dev/TaxiDriver c <choose Major Number> 0
# cmake is still incomplete
cd km && ./install.sh
```
Run the driver :
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 make load
sudo dmesg | grep TaxiDriver
```
You should find a line saying that TaxiDriver was loaded with X major code.
```
sudo mknod /dev/TaxiDriver c X 0
```
replace X with your major code.<br>
Run the client :
```
sudo ./Revird
```
Unload the driver :
```
sudo make unload
# sudo make unload
sudo rmmod TaxiDriver
sudo rm /dev/TaxiDriver
```
# Contact
#### 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 !<br>
If you need to contact me for any other reasons, message me at @_.patate on discord.
If you need to contact me for any other reasons, message me at `_.patate` on discord.