ButtPCap
Using USBPcap to side-step anticheat in games, in order to reroute rumble packets to sex toys via The Buttplug Sex Toy Control Library.
BUTTPCAP IS NOT NEEDED FOR ELDEN RING
While buttpcap was a neat stunt hack, it turns out that you can turn off EAC for Elden Ring by renaming the binaries, which will make the Game Haptics Router work with it. This method will turn off online access, but that's fine (see second warning section below).
See this twitter thread for more info.
It is recommended that you use the GHR instead of this project if you want sex toy interaction with Elden Ring.
Demo Video
There's a demo video on the Buttpluggin' With qDot Youtube Channel.
WARNING AGAINST USING THIS AT ALL
Do not actually use this. This is a shitpost project I made to work around the fact that games using EasyAntiCheat and other anti cheat products don't work with the Game Haptics Router.
Please go use the GHR and just act like this doesn't exist.
This project requires you to install a USB Packet Filter, which means EVERY SINGLE THING that goes over your USB bus, including keystrokes from your keyboard, can be picked up by any program with admin privileges.
I cannot stress how fucking stupid this is. You do not want to backdoor yourself, even in order to backdoor yourself.
Do not use this.
But if you really want to anyways, it's your funeral, here's the code.
WARNING IF YOU IGNORED THE LAST WARNING
If you do for some reason decide to ignore my multiple warnings and use this stupid, stupid thing, please do not use it in online games with random matchmaking or public lobbies. Only use it in private situations where all players are consenting.
Current Status
The code now works with the stock USBPcap driver from the binary install, as well as stock USBPcapCMD. We assume these are in c:\Program Files\USBPcap
.
The system does automated lookup for the device index of an Xbox One Controller. This is required to be an actual Xbox One Controller or something that registers with that exact USB name. If you have other controllers you think would work with this, let me know in the issues on this repo and I can add a lookup array for checking. I don't get VID/PID currently so we're stuck with name testing.
How It Works
For information on how this as well as the GHR, CGHR, etc works, check out the technical write-up on nonpolynomial.com
Compiling and Installation
Here's the compilation instructions, which you shouldn't use because see prior warnings.
This only works on Windows 10 Build 20H2 or newer (including Windows 11).
To compile:
- Install the Rust Compiler
- Clone git repo
- Run
cargo build
(orcargo build --release
for release version)
To run:
- Install USBPcap
- Program expects this to live in default location on C: drives.
- Run
cargo run
(or the exectuable will be intarget/debug
ortarget/release
)
Right now this requires an XBox One Controller. If you've got another XInput controller, and can confirm that it uses the same data format as an Xbox controller, you can change the name in the code.
License
Licensed under BSD 3-Clause
Copyright (c) 2022, Kyle Machulis
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of buttplug nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.