SerialProxy is a complete MITM solution for modifying 🖱️ mouse & ⌨️ keyboard input against highly sophisticated anti-cheats (ESEA/Faceit/Vanguard/...). This .NET Core package provides convenient access to the Teensy 4.1 interface to get/set proper input values over the provided USB Host Shield.
-------------------- -------------- ------------
| USB Mouse/Keyboard | --[USB HUB]-- | Teensy 4.1 | --[FAKE HID USB]-- | Computer |
-------------------- -------------- ------------
| | [Serial USB]
| -------------------------
---[SERIAL]--- | USB To SERIAL Adapter |
-------------------------
An optional second PC can be used to circumvent any memory analysis by any anticheat.
- Set Mouse Cursor Position (Relative X,Y)
- Set Mouse Scroll (Relative Y)
- Set Mouse Press/Release (Left, Right, Middle, Back, Forward)
- Set Keyboard Press/Release (Keyboard Codes)
- Get realtime Keyboard/Mouse Data (Being pressed on the real HID device)
Preparation:
- Check this Tutorial in order to build your Arduino
- Override Arduino files (USB Mode Modification + Keyboard Interception)
- Select "Logitech USB Receiver" in Arduino IDE, Paste *.ino script, flash it
- Modify input signal using .NET Core Library
string serialPort = "COM3";
// Setup arduino mouse
DotNetSerialAdaptor serial = null;
try
{
serial = new DotNetSerialAdaptor(serialPort);
Console.Error.WriteLine($"Arduino connected successfully on port {serialPort}");
}
catch (Exception)
{
Console.Error.WriteLine($"Cannot connect to port {serialPort}!");
return;
}
Mouse = new SerialProxy.Mouse(serial);
Keyboard = new SerialProxy.Keyboard(serial);
// Modify fake mouse
Mouse.SetMousePos(0, -10);
All methods can be found in Mouse.cs and Keyboard.cs, Testbench. If you have any questions, feel free to open an issue on Github.
This project is released under MIT License. Please refer the LICENSE.txt for more details.