Using USBPcap to side-step anticheat in games, in order to reroute rumble packets to sex toys via The Buttplug Sex Toy Control Library

Overview

ButtPCap

Patreon donate button Github donate button Discord

Twitter Twitter

Youtube: Buttpluggin' With qDot Youtube: Poor Life Choices

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 (or cargo 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 in target/debug or target/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.
You might also like...
A single-threaded executor for deferred async code for games.

This crate provides a single-threaded, sequential, parameterized async runtime. In other words, this creates coroutines, specifically targeting video game logic, though cosync is suitable for creating any sequences of directions which take time.

Cross-platform (including wasm) persistent key value store plugin for rust games/apps

bevy_pkv bevy_pkv is a cross-platform persistent key value store for rust apps. Use it for storing things like settings, save games etc. Currently, it

A framework for modding and instrumenting games.

me3 A framework for modifying and instrumenting games. Explore the docs » Report Bug · Request Feature About The Project Built With Getting Started Pr

A framework for building adventure games in Bevy.

Bevy_adventure A framework for building 3d adventure games in Bevy. preview.mp4 Features Interactive trait is the backbone of the framework, allowing

Bevy virtual Joystick for mobile games (Works with mouse on desktop)
Bevy virtual Joystick for mobile games (Works with mouse on desktop)

Bevy Virtual Joystick Create and use a Virtual Joystick in a UI for bevy Game Engine. Versions Aviable and compatible versions bevy VirtualJoystick 0.

Explicitly set sprite layers for sprites in Bevy games.
Explicitly set sprite layers for sprites in Bevy games.

extol_sprite_layer lets you specify the drawing order for sprites in your Bevy game using a separate component rather than via the z-coordinate of you

Control a now blue circle with wasd/arrow keys (intense gameplay)
Control a now blue circle with wasd/arrow keys (intense gameplay)

bevy-moving-circle A yellow circle player controlled with arrow keys/WASD Now you can click to spawn orange cicles lmao (intense action packed gamepla

vetovoima is an arcade game where you control gravity!
vetovoima is an arcade game where you control gravity!

vetovoima vetovoima is an arcade game where you control the gravity! The world is a hollow circle with a star in the center. You're the Yellow Block a

A simple space shooter game. Runs in the terminal using characters-based UI. Fully written in Rust, using the
A simple space shooter game. Runs in the terminal using characters-based UI. Fully written in Rust, using the "ruscii" library.

Thrust - a terminal shooter game Originally created as a project for the "Missing Semester" course at JKU Linz (338.006). The game is entirely written

Owner
qDot
Arctic Fox, Teledildonticist, Cube. Please do not contact with job offers or surveys not related to Internet Buttplugs.
qDot
A framework for making games using Macroquad.

Omegaquad A framework for making games using Macroquad. After writing maybe 5 games and finding myself always going to the previous project to copy-pa

null 14 Oct 13, 2022
Wein2D.js bindings for creating browser games in Rust using WebAssembly.

Wein2D.js-WASM Wein2D.js bindings for creating browser games in Rust using WebAssembly. Wein2D.js-WASM requires Wein2d.js to be loaded in the same doc

DevTaube 1 Apr 14, 2022
Synchronize games from other platforms into your Steam library

BoilR Description This little tool will synchronize games from other platforms into your Steam library, using the Steam Shortcuts feature. The goal is

Philip Kristoffersen 823 Jan 9, 2023
A sandbox library for making FAST voxel games

voxelize WIP A well-optimized web-based voxel engine. Development Before starting, make sure to install the following: rust node.js cargo-watch # clon

Ian Huang (Shaoru) 146 Dec 30, 2022
A 2D side-scrolling 'endless runner' game, with simple generative music.

Lonely Star Space is a lonely place, but at least you've got the music to keep you company. Lonely Star is a 2D side-scrolling 'endless runner' game,

Joe Clay 9 Sep 12, 2022
An ergonomic physics API for bevy games.

Heron An ergonomic physics API for 2d and 3d bevy games. (powered by rapier) How it looks like fn main() { App::build() .add_plugins(DefaultPlug

Jonathan Cornaz 313 Dec 16, 2022
A frontend to Assets purchased on Epic Games Store

Epic-Asset-Manager A frontend to Assets purchased on Epic Games Store Current Screenshot Install Arch Linux Use the AUR package Build flatpak meson _b

Acheta Games 202 Jan 3, 2023
A single-threaded polling-based Rust async executor suitable for use in games, embedded systems or WASM.

simple async local executor An Enlightware® software. Overview A single-threaded polling-based executor suitable for use in games, embedded systems or

Enlightware GmbH 16 Nov 15, 2022
A simple camera for properly displaying tile-based low resolution pixel perfect 2D games in bevy.

Bevy Tiled Camera A simple camera for properly displaying low resolution pixel perfect 2D games in bevy. The camera will adjust the viewport to scale

sark 10 Oct 5, 2022
A Rust promise for games and immediate mode GUIs

⌛ poll-promise A Rust promise for games and immediate mode GUIs Description poll-promise is a Rust crate for polling the result of a concurrent (e.g.

Embark 82 Dec 17, 2022